1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/bash
- # bachir soussi chiadmi
- # get the current position
- _cwd="$(pwd)"
- echo -e '\033[35m
- __ __ _ _ _ _
- \ \ / /__| |__| || |___ ___| |__
- \ \/\/ / -_) `_ \ __ / _ \/ _ \ / /
- \_/\_/\___|_.__/_||_\___/\___/_\_\
- \033[0m'
- # check for assets folder
- _assets="$_cwd/assets"
- if [ ! -d "$_assets" ]; then
- _assets="$_cwd/../assets"
- if [ ! -d "$_assets" ]; then
- echo "!! can't find assets directory !!"
- exit
- fi
- fi
- while [ "$user" = "" ]
- do
- read -p "enter an existing user name ? " user
- if [ "$user" != "" ]; then
- # check if user already exists
- if id "$user" >/dev/null 2>&1; then
- read -p "is user name $user correcte [y|n] " validated
- if [ "$validated" = "y" ]; then
- break
- else
- user=""
- fi
- else
- echo "user $user doesn't exists, you must provide an existing user"
- user=""
- fi
- fi
- done
- while [ "$_domain" = "" ]
- do
- read -p "enter a domain name ? " _domain
- if [ "$_domain" != "" ]; then
- read -p "is domain $_domain correcte [y|n] " validated
- if [ "$validated" = "y" ]; then
- break
- else
- _domain=""
- fi
- fi
- done
- # TODO check for /home/"$user"/www/"$_domain"
- if [ ! -d /home/"$user"/www/"$_domain" ]; then
- echo "/home/$user/www/$_domain does not exists !"
- exit
- fi
- # TODO check for /home/"$user"/git-repositories/"$_domain.git"
- if [ ! -d /home/"$user"/git-repositories/"$_domain.git" ]; then
- echo "/home/$user/git-repositories/$_domain.git does not exists !"
- exit
- fi
- apt-get install webhook
- # hook deploy script
- cp "$_assets"/webhook-deploy.sh /"$user"/webhook-deploy-"$_domain".sh
- sed -i -r "s/DOMAIN/$_domain/g" /"$user"/webhook-deploy-"$_domain".sh
- chmod +x /"$user"/webhook-deploy-"$_domain".sh
- # remove git bare repos hook
- mv /home/"$user"/git-repositories/"$_domain".git/hooks/post-receive /home/"$user"/git-repositories/"$_domain".git/hooks/post-receive.back
- # webhook conf
- touch /etc/webhook.conf
- echo "
- - id: deploy-app-$_domain
- execute-command: /$user/webhook-deploy-$_domain.sh
- command-working-directory: /home/$user/
- " >> /etc/webhook.conf
- # webhook service
- cp "$_assets"/webhook.service /etc/systemd/system/webhook.service
- systemctl enable webhook
- systemctl start webhook
- systemctl reload webhook
- ufw allow 9000
- echo "http://$_domain:9000/hooks/deploy-app-$_domain"
|