Skip to content

Instantly share code, notes, and snippets.

@ANAT01
Created January 27, 2016 17:01
Show Gist options
  • Save ANAT01/47cc31cc4d819179018e to your computer and use it in GitHub Desktop.
Save ANAT01/47cc31cc4d819179018e to your computer and use it in GitHub Desktop.
#!/usr/bin/gksu bash
function getLxcList {
loop=0
ROW="HR"
HRCOUNT=0
TRCOUNT=0
ZENITYCMD="zenity --width=400 --height=300 --list --print-column=all --title='Список LXC-контейнеров'"
SPLITNEXT=' '
# Получаем список контейнеров
LXCLIST=$(echo $SUPASS | sudo -kSn lxc-ls -1 -f)
# Читаем список LXC-контейнеров
for i in $LXCLIST; do
# Составляем заголовок таблицы
if echo $i | grep -q '\---'; then
ROW='TR'
continue;
fi
# Составляем записи в таблице
if [ "$ROW" = "HR" ]; then
HRCOUNT=$((HRCOUNT+1)) # Счетчик заголовка таблицы
ZENITYCMD="$ZENITYCMD --column=$i"
elif [ "$ROW" = "TR" ]; then
TRCOUNT=$((TRCOUNT+1)) # Счетчик строк
ZENITYCMD="$ZENITYCMD$SPLITNEXT$i"
SPLITNEXT=' ' # Каждый раз сбрасываем параметр склейки строки
#Если в стрке есть запятая, то нужно соединить следующую строку с предедущей
if echo $i | grep -q ','; then
SPLITNEXT=''
fi
fi
done
}
# Обработка событий zenity
function ZENTABLE {
getLxcList
if SELECTEDITEM=$(eval $ZENITYCMD); then
IFS='|' read -r -a array <<< "$SELECTEDITEM"
if [ "${array[1]}" != "STOPPED" ];then
if zenity --question --text="Вы хотите ОСТАНОВИТЬ контейнер ${array[0]}?"; then
echo $SUPASS | sudo -Sn lxc-stop -n ${array[0]}
fi
else
if zenity --question --text="Вы хотите ЗАПУСТИТЬ контейнер ${array[0]}?"; then
echo $SUPASS | sudo -Sn lxc-start -d -n ${array[0]}
fi
fi
ZENTABLE
fi
}
ZENTABLE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment