mirror of
https://github.com/YunoHost/ynh-dev.git
synced 2024-09-03 20:05:59 +02:00
Drop Docker and Wheezy support.
This commit is contained in:
parent
1ca556ca1b
commit
0fe1caffc9
2 changed files with 85 additions and 66 deletions
35
README.md
35
README.md
|
@ -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
116
ynh-dev
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue