Drop Docker and Wheezy support.

This commit is contained in:
opi 2016-04-27 09:23:32 +02:00
parent 1ca556ca1b
commit 0fe1caffc9
2 changed files with 85 additions and 66 deletions

View file

@ -1,13 +1,16 @@
# ynh-dev, a yunohost dev env # ynh-dev, a yunohost dev env
This script is a cli to manage a yunohost development environement. With this you can develop on the unstable version of yunohost quickly.
This script is a cli to manage a yunohost development environement.
With this you can develop on the unstable version of yunohost quickly.
## Setup ## Setup
Install dependencies Install dependencies
```shell ```shell
# Debian, Ubuntu, Mint # Debian, Ubuntu, Mint
sudo apt-get install docker vagrant sudo apt-get install vagrant
# Fedora # Fedora
sudo dnf install docker vagrant vagrant-libvirt sudo dnf install vagrant vagrant-libvirt
``` ```
Next download ynh-dev script Next download ynh-dev script
@ -16,7 +19,13 @@ Next download ynh-dev script
wget https://raw.githubusercontent.com/zamentur/yunohost-development/master/ynh-dev wget https://raw.githubusercontent.com/zamentur/yunohost-development/master/ynh-dev
chmod u+x ynh-dev chmod u+x ynh-dev
``` ```
## Usage
## Host usage
The `ynh-dev` tool provides 2 usefull command to run into your host machine. One
create a development environment by cloning Git repositories, the other one is a
helper to run a Vagrant virtual machine in the right place.
### Create the environment ### Create the environment
```shell ```shell
@ -25,27 +34,33 @@ ynh-dev create-env /path/to/dev/env
### Run a container ### Run a container
``` ```
ynh-dev run ynh.local virtualbox testing8 cd /path/to/dev/env
ynh-dev run ynh.local virtualbox testing
``` ```
## Inside the Virtual machine (VM)
Once logged into your VM, go to `/vagrant` to enjoy folder sharing, and take
advantages of the `ynh-dev` script.
### Upgrade the container ### Upgrade the container
``` ```
ynh-dev upgrade ynh-dev/ynh-dev upgrade
``` ```
### Deploy your change ### Deploy your change
``` ```
ynh-dev deploy ynh-dev/ynh-dev deploy
``` ```
### Deploy your change in realtime (each time you saved source code) ### Deploy your change in realtime (each time you saved source code)
``` ```
ynh-dev watch ynh-dev/ynh-dev watch
``` ```
## Useful command
### Get ip address of your vm ### Get ip address of your vm
``` ```
ynh-dev ip ynh-dev/ynh-dev ip
``` ```
## More info ## More info

116
ynh-dev
View file

@ -7,10 +7,10 @@ Usage :
On the host On the host
`basename $0` create-env PATH `basename $0` create-env PATH
Create a dev environement into PATH Create a dev environement into PATH
`basename $0` run DOMAIN [VM VERSION] `basename $0` run DOMAIN [VERSION]
Run a docker or virtualbox vm Run a vagrant or virtualbox vm
`basename $0` kill VM # `basename $0` kill
Kill the last docker or all vagrant # Kill all vagrant
Inside the vm Inside the vm
`basename $0` ip `basename $0` ip
@ -28,18 +28,10 @@ PACKAGES :
yunohost yunohost
yunohost-admin yunohost-admin
VM
docker
vagrant
virtualbox
VERSION VERSION
stable8 stable
testing8 testing
unstable8 unstable
stable7
testing7
unstable7
EOF EOF
} }
@ -51,13 +43,6 @@ check_yunohost_vm() {
fi fi
} }
start_dockerd() {
status=`sudo service docker status`
if [ "$status" = "docker stop/waiting" ]; then
sudo service docker start
fi
}
packages=${@:2} packages=${@:2}
if [ "$#" = "1" ]; then if [ "$#" = "1" ]; then
packages=('moulinette' 'ssowat' 'yunohost' 'yunohost-admin') packages=('moulinette' 'ssowat' 'yunohost' 'yunohost-admin')
@ -65,13 +50,19 @@ fi
BASE_DIR=./ BASE_DIR=./
##################
## Help message ##
##################
if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "help" ]; then if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "help" ]; then
usage usage
######################################
## Create a development environment ##
######################################
elif [ "$1" = "create-env" ]; then elif [ "$1" = "create-env" ]; then
set -x set -x
#Create a development environment
pwd=`pwd` pwd=`pwd`
if [ ! "$2" ] if [ ! "$2" ]
@ -83,63 +74,71 @@ elif [ "$1" = "create-env" ]; then
[ -e "$2" ] || mkdir -p $2 [ -e "$2" ] || mkdir -p $2
cd $2 cd $2
# Create apps & backup folder
mkdir -p apps mkdir -p apps
mkdir -p backup mkdir -p backup
# Get YunoHost packages
git clone -b unstable https://github.com/Kloadut/SSOwat SSOwat git clone -b unstable https://github.com/Kloadut/SSOwat SSOwat
git clone -b unstable https://github.com/YunoHost/yunohost-admin yunohost-admin git clone -b unstable https://github.com/YunoHost/yunohost-admin yunohost-admin
git clone -b unstable https://github.com/YunoHost/yunohost yunohost git clone -b unstable https://github.com/YunoHost/yunohost yunohost
git clone -b unstable https://github.com/YunoHost/moulinette moulinette git clone -b unstable https://github.com/YunoHost/moulinette moulinette
git clone https://github.com/YunoHost/Dockerfile Dockerfile
# Get YunoHost Vagrantfile
git clone https://github.com/YunoHost/Vagrantfile vagrant git clone https://github.com/YunoHost/Vagrantfile vagrant
cp $pwd/$0 ./$0
ln -s vagrant/Vagrantfile Vagrantfile ln -s vagrant/Vagrantfile Vagrantfile
# Get YunoHost dev tools
git clone https://github.com/YunoHost/ynh-dev ynh-dev-tools
cp ynh-dev-tools/ynh-dev ynh-dev
# cp $pwd/$0 ./$0
#################################
## Run a vm and give a prompt ##
#################################
elif [ "$1" = "run" ]; then elif [ "$1" = "run" ]; then
#Run a vm and give a prompt
DOMAIN=$2 DOMAIN=$2
VM='docker' VERSION='stable'
VERSION='stable8'
if [ "$#" = "3" ]; then if [ "$#" = "3" ]; then
VM=$3 VERSION=$3
elif [ "$#" = "4" ]; then
VM=$3
VERSION=$4
fi fi
if [ "$VM" = "docker" ]; then vagrant up --debug $VERSION
start_dockerd vagrant ssh $VERSION
docker exec -t -i $(sudo docker run -h yunohost.$DOMAIN -v $(pwd):/yunohost -d zamentur/yunohost-$VERSION /sbin/init) /bin/bash
elif [ "$VM" = "virtualbox" ] || [ "$VM" = "vagrant" ]; then
vagrant up $VERSION
vagrant ssh $VERSION
else
echo "This kind of VM is not supported"
exit 100;
fi
#####################
## Kill running VM ##
#####################
elif [ "$1" = "kill" ]; then elif [ "$1" = "kill" ]; then
VM=$2 vagrant destroy
if [ "$VM" = "docker" ]; then
docker kill $(docker ps -lq)
elif [ "$VM" = "virtualbox" ] || [ "$VM" = "vagrant" ]; then #######################
vagrant destroy ## Update current VM ##
elif [ "$VM" = "" ]; then #######################
vagrant destroy -f
docker kill $(docker ps -lq)
else
echo "This kind of VM is not supported"
exit 100;
fi
elif [ "$1" = "upgrade" ]; then elif [ "$1" = "upgrade" ]; then
check_yunohost_vm check_yunohost_vm
sudo apt-get update sudo apt-get update
sudo apt-get -y upgrade sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade sudo apt-get -y dist-upgrade
sudo apt-get install -y inotify-tools net-tools sudo apt-get install -y inotify-tools net-tools
#######################
## Get current VM IP ##
#######################
elif [ "$1" = "ip" ]; then elif [ "$1" = "ip" ]; then
check_yunohost_vm check_yunohost_vm
sudo apt-get install -y net-tools # TODO : check for installed paquage instead of quiet install
/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' sudo apt-get install -qq -y net-tools
# Print IP
ip=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
echo "IP: $ip"
elif [ "$1" = "deploy" ]; then elif [ "$1" = "deploy" ]; then
check_yunohost_vm check_yunohost_vm
for i in ${!packages[@]}; do for i in ${!packages[@]}; do
@ -173,12 +172,17 @@ elif [ "$1" = "deploy" ]; then
;; ;;
esac esac
done done
elif [ "$1" = "watch" ]; then elif [ "$1" = "watch" ]; then
check_yunohost_vm check_yunohost_vm
sudo apt-get install -y inotify-tools sudo apt-get install -y inotify-tools
while inotifywait -r -e close_write $BASE_DIR/moulinette/ $BASE_DIR/SSOwat/ $BASE_DIR/yunohost/ $BASE_DIR/yunohost-admin/; do while inotifywait -r -e close_write $BASE_DIR/moulinette/ $BASE_DIR/SSOwat/ $BASE_DIR/yunohost/ $BASE_DIR/yunohost-admin/; do
$BASE_DIR/$0 deploy ${@:2}; $BASE_DIR/$0 deploy ${@:2};
done done
# Fallback to print usage
else else
usage usage
exit 101 exit 101