66 lines
1.9 KiB
Bash
Executable File
66 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
usage() {
|
|
echo "ne - nginx edit"
|
|
echo "Usage: ne file_to_edit [-y] [-c]"
|
|
echo "Options:"
|
|
echo "-h -> Show this help"
|
|
echo "-y -> skip confirm on reload"
|
|
echo "-c -> manually choose the text editor (default = vim)"
|
|
echo "Default behaviour: without arguments edits nginx.conf with confirmation"
|
|
exit 0
|
|
}
|
|
text_editor=$EDITOR
|
|
skip_confirm=0
|
|
#sites-enabled="/etc/nginx/sites-enabled"
|
|
|
|
pushd /etc/nginx/sites-enabled
|
|
[[ $1 = "-h" ]] && usage
|
|
|
|
|
|
#sbagliato l'if, se ho minore o uguale ad 1 argomento allora o è file o è flag, se file non esiste è un flag
|
|
if [[ $# -le 0 ]]
|
|
then
|
|
#lanciato senza argomenti: edita configurazione globale di nginx
|
|
file=../nginx.conf
|
|
printf "${RED}Editing nginx.conf${NC}\n"
|
|
sleep 0.5
|
|
else
|
|
[[ -e $1 ]] && file=$1 && shift
|
|
fi
|
|
[[ $1 = "-y" ]] && shift && skip_confirm=1
|
|
[[ -e ~/.local/share/ne_auto_confirm ]] && skip_confirm=1 #se flag -y in seconda posizione o esiste ~/.local/share/ne_auto_confirm
|
|
|
|
$(which cp) $file /tmp/copia_check_nginx_${USER} #$(which cat) $file > /tmp/copia_check_nginx_${USER} #non so se usare cat > o cp
|
|
#se cat > o cp danno errore vuol dire che il file non esiste ed esco male:
|
|
[[ $? -eq 1 ]] && printf "${RED}File${NC} $file ${RED}not found, aborting${NC}\n" && exit 1
|
|
|
|
if [[ $1 = "-c" ]] #se flag è -c e ho ancora una parola dopo allora quello è l'editor
|
|
then
|
|
shift
|
|
if [[ $1 = "" ]]
|
|
then
|
|
read -p "Editor? " text_editor
|
|
else
|
|
text_editor=$1
|
|
shift
|
|
fi
|
|
fi
|
|
|
|
[[ -e $(which $text_editor) ]] || exit 3
|
|
sudo $text_editor $file
|
|
diff --color=always $file /tmp/copia_check_nginx_${USER}
|
|
|
|
edited=$?
|
|
if [[ $edited = 1 ]]
|
|
then
|
|
sudo nginx -t || exit 1
|
|
[[ $skip_confirm = 1 ]] && sudo nginx -s reload || confirm "Configuration OK, reload conf? " && sudo nginx -s reload && echo "nginx should be updated" || echo "Aborted"
|
|
else
|
|
echo "No edits found, no need for nginx reload"
|
|
exit 1
|
|
fi
|
|
pushd
|