Commit c5d575cc authored by mikka's avatar mikka
Browse files

cleaned up

parent 08f4d8b9
# basics taken from here:
# http://www.ravelrumba.com/blog/watch-compile-less-command-line/comment-page-1/#comment-2464
# Requires watchr: https://github.com/mynyml/watchr
watchless () {
compressed=0
compile=""
while getopts ":xc:h" option
do
case $option in
x ) compressed=1 ;;
c ) compile=$OPTARG ;;
h ) _watchless_usage; return ;;
esac
done
if [ $compressed -eq 1 ]; then
x=' -x'
else
x=''
fi
if [ -n "$compile" ]; then
if [ ! -e $compile ]; then
echo "\033[337;41m\n$compile doesn't exist!\n\033[0m"
return
fi
name=$(echo $compile | cut -d . -f 1)
watchr -e 'watch(".*\.less$") { |f| system("lessc '$name'.less > '$name'.css'$x' && echo \"'$name'.less > '$name'.css\" ") }'
else
watchr -e 'watch(".*\.less$") { |f| system("lessc #{f[0]} > $(echo #{f[0]} | cut -d\. -f1).css'$x' && echo \"#{f[0]} > $(echo #{f[0]} | cut -d\. -f1).css\" ") }'
fi
}
_watchless_usage () {
echo "Usage: watchless [options]"
echo
echo "Options"
echo " -x Compiles less files into minified css files"
echo " -c Watch all files but compile only the one given here"
echo " -h Get this help message"
return
}
: ${NGINX_DIR:=/etc/nginx}
: ${NGINX_VHOST_TEMPLATE:=$ZSH/plugins/nginx/templates/symfony2}
if [ $use_sudo -eq 1 ]; then
sudo="sudo"
else
sudo=""
fi
# nginx basic completition
_nginx_get_en_command_list () {
ls -a $NGINX_DIR/sites-available | awk '/^[a-z][a-z.-]+$/ { print $1 }'
}
_nginx_get_dis_command_list () {
ls -a $NGINX_DIR/sites-enabled | awk '/^[a-z][a-z.-]+$/ { print $1 }'
}
_nginx_en () {
compadd `_nginx_get_en_command_list`
}
_nginx_dis () {
compadd `_nginx_get_dis_command_list`
}
# Enabling a site
en () {
if [ ! $1 ]; then
echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m";
return
fi
if [ ! -e $NGINX_DIR/sites-available/$1 ]; then
echo "\033[31m$1\033[0m doesn't exist";
return
fi
if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then
$sudo ln -s $NGINX_DIR/sites-available/$1 $NGINX_DIR/sites-enabled/$1;
if [ -e /etc/nginx/sites-enabled/$1 ]; then
echo "\033[32m$1\033[0m successfully enabled";
else
echo "An error occured during the enabling of \033[31m$1\033[0m";
fi
else
echo "\033[31m$1\033[0m is already enabled";
fi
}
compdef _nginx_en en
# Disabling a site
dis () {
if [ ! $1 ]; then
echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m";
return
fi
if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then
echo "\033[31m$1\033[0m doesn't exist";
else
$sudo rm -f $NGINX_DIR/sites-enabled/$1;
if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then
echo "\033[32m$1\033[0m successfully disabled";
else
echo "An error occured during the disabling of \033[31m$1\033[0m";
fi
fi
}
compdef _nginx_dis dis
# Completition of vhost
_nginx_get_possible_vhost_list () {
ls -a $HOME/www | awk '/^[^.][a-z0-9._]+$/ { print $1 }'
}
_nginx_vhost () {
compadd `_nginx_get_possible_vhost_list`
}
# Parsing arguments
vhost () {
local user=$USER;
local template=$NGINX_VHOST_TEMPLATE
local tpl="non_existing_template"
local enable=1
local write_hosts=0
while getopts ":lu:t:nwh" option
do
case $option in
l ) ls $NGINX_DIR/sites-enabled; return ;;
u ) user=$OPTARG ;;
t ) tpl=$OPTARG ;;
n ) enable=0 ;;
w ) write_hosts=1 ;;
h ) _vhost_usage; return ;;
esac
done
shift $[ $OPTIND - 1 ]
local vhost=$1
if [ -z "$vhost" ]; then
echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"
return
fi
if [ -e $ZSH/plugins/nginx/templates/$tpl ]; then
local template=$ZSH/plugins/nginx/templates/$tpl
elif [ -e $tpl ]; then
local template=$tpl
fi
_vhost_generate $vhost $user
if [ $enable -eq 1 ]; then
en $vhost
fi
if [ $write_hosts -eq 1 ]; then
_write_hosts $vhost
fi
}
compdef _nginx_vhost vhost
_vhost_usage () {
echo "Usage: vhost [options] [vhost_name]"
echo
echo "Options"
echo " -l Lists enabled vhosts"
echo " -u Sets the user - defaults to the current user ($USER)"
echo " -t Sets the template"
echo " -n Does not enable the generated vhost"
echo " -w Write the vhost to the /etc/hosts file pointing to 127.0.0.1 (writes it at the end of the first line actually)"
echo " -h Get this help message"
return
}
# Generate config file
_vhost_generate () {
local user=$(cat /etc/passwd | grep $2 | awk -F : '{print $1 }')
if [ ! $user ]; then
echo "User \033[31m$2\033[0m doesn't have an account on \033[33m$HOST\033[0m"
return
fi
echo "Generating \033[32m$1\033[0m vhost for \033[33m$user\033[0m user"
local user_id=$(cat /etc/passwd | grep $2 | awk -F : '{print $3 }')
local pool_port=1$user_id
local conf=$(sed -e 's/{vhost}/'$1'/g' -e 's/{user}/'$user'/g' -e 's/{pool_port}/'$pool_port'/g' $template )
echo $conf > $1.tmp
$sudo mv $1.tmp $NGINX_DIR/sites-available/$1
if [ -e $NGINX_DIR/sites-available/$1 ]; then
echo "\033[32m$1\033[0m vhost has been successfully created"
else
echo "An error occured during the creating of \033[31m$1\033[0m vhost"
fi
}
# Write the /etc/hosts file
_write_hosts () {
temp=$HOME/hosts.temp
exec < /etc/hosts
while read line
do
if [ -e $temp ]; then
echo "$line" >> $temp;
else
echo "$line $1" > $temp;
fi
done
$sudo mv $temp /etc/hosts;
echo "\033[32m$1\033[0m vhost has been successfully written in /etc/hosts"
}
alias ngt="$sudo nginx -t"
alias ngr="$sudo service nginx restart"
server {
root /home/{user}/www/{vhost};
index index.php;
server_name {vhost};
error_log /var/log/nginx/{vhost}.error.log;
access_log /var/log/nginx/{vhost}.access.log;
location / {
try_files $uri $uri/ $uri/index.php;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:{pool_port};
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
location ~ /\.ht {
deny all;
}
}
server {
root /home/{user}/www/{vhost}/web;
index app_dev.php;
server_name {vhost};
client_max_body_size 10M;
error_log /var/log/nginx/{vhost}.error.log;
access_log /var/log/nginx/{vhost}.access.log;
location / {
try_files $uri $uri/ /app_dev.php$uri /app_dev.php$is_args$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:{pool_port}
location ~ ^/(app|app_dev|check)\.php(/|$) {
fastcgi_pass 127.0.0.1:{pool_port};
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
location ~ /\.ht {
deny all;
}
}
: ${FPM_DIR:=/etc/php5/fpm}
if [ $use_sudo -eq 1 ]; then
sudo="sudo"
else
sudo=""
fi
_fpm_get_possible_pool_list () {
cat /etc/passwd | awk -F : '{print $1 }'
}
_fpm_pool () {
compadd `_fpm_get_possible_pool_list`
}
pool () {
while getopts ":lh" option
do
case $option in
l ) ls $FPM_DIR/pool.d; return ;;
h ) _pool_usage; return ;;
* ) _pool_usage; return ;; # Default.
esac
done
if [ ! $1 ]; then
user=$USER
else
user=$1
fi
_pool_generate $user
}
compdef _fpm_pool pool
_pool_usage () {
echo "Usage: pool [options] [user]"
echo
echo "Options"
echo " -l Lists fpm pools"
echo " -h Get this help message"
return
}
_pool_generate () {
user=$(cat /etc/passwd | grep $1 | awk -F : '{print $1 }')
if [ ! $user ]; then
echo "User \033[31m$1\033[0m doesn't have an account on \033[33m$HOST\033[0m"
return
fi
group=$(groups $user | cut -d " " -f 3)
echo "Generating pool for \033[33m$user\033[0m user with \033[33m$group\033[0m group"
user_id=$(cat /etc/passwd | grep $1 | awk -F : '{print $3 }')
pool_port=1$user_id
: ${FPM_POOL_TEMPLATE:=$ZSH/plugins/php-fpm/templates/pool}
conf=$(sed -e 's/{user}/'$user'/g' -e 's/{group}/'$group'/g' -e 's/{pool_port}/'$pool_port'/g' $FPM_POOL_TEMPLATE )
echo $conf > $user.conf
$sudo mv $user.conf $FPM_DIR/pool.d/$user.conf
if [ -e $FPM_DIR/pool.d/$user.conf ]; then
echo "Pool for \033[32m$user\033[0m user has been successfully created"
else
echo "An error occured during the creating of pool for \033[31m$user\033[0m user"
fi
}
alias fpmr="$sudo service php5-fpm restart"
[{user}]
user = {user}
group = {group}
listen = 127.0.0.1:{pool_port}
pm = dynamic
pm.max_children = 10
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 100
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment