109 lines
5.7 KiB
Bash
Executable File
109 lines
5.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
|
||
CONFIG_DIR="$HOME/.config/retailcrm-menu"
|
||
TP_EMAILS_FILE="$CONFIG_DIR/tech-support-emails"
|
||
TP_PASS_FILE="$CONFIG_DIR/tech-support-password"
|
||
TEST_SYSTEM_CREDENTIALS_FILE="$CONFIG_DIR/test-system-credentials"
|
||
|
||
mkdir -p "$CONFIG_DIR"
|
||
|
||
copytext () {
|
||
if [ "$XDG_SESSION_TYPE" == "x11" ]; then
|
||
xclip -selection clipboard <&0
|
||
else
|
||
wl-copy <&0
|
||
fi
|
||
}
|
||
|
||
if [ "$1" == "to-clipboard" ]; then
|
||
copytext <&0
|
||
exit
|
||
fi
|
||
|
||
if [ "$1" == "tech-password" ]; then
|
||
if [ "$2" == "update" ]; then
|
||
NEW_PASSWORD=$(zenity --forms --title="Обновление пароля техподдержки" --text="Введите пароль техподдержки" --add-entry="Пароль техподдержки")
|
||
if [ $? == 0 ]; then
|
||
echo "$NEW_PASSWORD" > "$TP_PASS_FILE"
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i dialog-password "Пароль техподдержки обновлён"
|
||
fi
|
||
fi
|
||
if [ "$2" == "copy" ]; then
|
||
< "$TP_PASS_FILE" tr -d '\n' | copytext
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i dialog-password "Пароль техподдержки скопирован"
|
||
fi
|
||
exit
|
||
fi
|
||
|
||
if [ "$1" == "testsystem" ]; then
|
||
if [ "$2" == "update" ]; then
|
||
NEW_CREDENTIALS=$(zenity --forms --title="Обновление доступов тестовой системы" --text="Введите доступы к тестовой системе" --add-entry="API URL" --add-entry="API-ключ")
|
||
if [ $? == 0 ]; then
|
||
echo "$NEW_CREDENTIALS|$(curl -fsSL $(echo $NEW_CREDENTIALS | cut -d'|' -f1 | tr -d '\n')/api/system-info | jq -j '.technicalUrl')" > "$TEST_SYSTEM_CREDENTIALS_FILE"
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i dialog-password "Данные тестовой системы обновлены"
|
||
fi
|
||
fi
|
||
if [ "$2" == "open-url" ]; then
|
||
< "$TEST_SYSTEM_CREDENTIALS_FILE" cut -d'|' -f1 | tr -d '\n' | xargs xdg-open
|
||
fi
|
||
if [ "$2" == "copy-url" ]; then
|
||
< "$TEST_SYSTEM_CREDENTIALS_FILE" cut -d'|' -f1 | tr -d '\n' | copytext
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i dialog-password "API URL тестовой системы скопирован"
|
||
fi
|
||
if [ "$2" == "copy-tech-url" ]; then
|
||
< "$TEST_SYSTEM_CREDENTIALS_FILE" cut -d'|' -f3 | tr -d '\n' | copytext
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i dialog-password "Технический API URL тестовой системы скопирован"
|
||
fi
|
||
if [ "$2" == "copy-key" ]; then
|
||
< "$TEST_SYSTEM_CREDENTIALS_FILE" cut -d'|' -f2 | tr -d '\n' | copytext
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i dialog-password "API-ключ тестовой системы скопирован"
|
||
fi
|
||
exit
|
||
fi
|
||
|
||
if [ "$1" == "emails-update" ]; then
|
||
curl -sSfL https://infra-data.retailcrm.tech/crm-domains.json | jq -r '.domains[].domain' | sed -e s/^/mail@/ > "$TP_EMAILS_FILE"
|
||
notify-send -h int:transient:1 -u normal -t 1000 -i mail-unread "Почтовые адреса техподдержки обновлены"
|
||
exit
|
||
fi
|
||
|
||
echo " |iconName=system-help"
|
||
echo "---"
|
||
|
||
echo "Логин техподдержки | iconName=avatar-default"
|
||
if [[ -f "$TP_EMAILS_FILE" ]]; then
|
||
while IFS="" read -r p || [ -n "$p" ]
|
||
do
|
||
printf '%s%s | iconName=mail-unread bash='"'"'echo %s | %s && notify-send -h int:transient:1 -u normal -t 1000 -i mail-unread "%s скопировано"'"'"' terminal=false\n' "--" "$p" "$p" "$0 to-clipboard" "$p"
|
||
done < "$TP_EMAILS_FILE"
|
||
else
|
||
echo "--Список пуст, обновите"
|
||
fi
|
||
echo "--Обновить | iconName=view-refresh bash='$0 emails-update' terminal=false"
|
||
|
||
echo "Пароль техподдержки | iconName=dialog-password"
|
||
echo "--Скопировать | iconName=edit-copy bash='$0 tech-password copy' terminal=false"
|
||
echo "--Обновить | iconName=view-refresh bash='$0 tech-password update' terminal=false"
|
||
|
||
echo "Доступы в тестовую CRM | iconName=user-info"
|
||
echo "--Открыть систему | iconName=emblem-web bash='$0 testsystem open-url' terminal=false"
|
||
echo "--API URL | iconName=system-lock-screen bash='$0 testsystem copy-url' terminal=false"
|
||
echo "--Технический API URL | iconName=system-lock-screen bash='$0 testsystem copy-tech-url' terminal=false"
|
||
echo "--API-ключ | iconName=emblem-system bash='$0 testsystem copy-key' terminal=false"
|
||
echo "--Обновить | iconName=view-refresh bash='$0 testsystem update' terminal=false"
|
||
|
||
echo "--"
|
||
|
||
echo "Запись с экрана | iconName=camera-photo"
|
||
echo "--Скриншот | iconName=image-x-generic bash='sleep 0.3 && flameshot gui' terminal=false"
|
||
echo "--GIF с экрана | iconName=video-display bash='peek' terminal=false"
|
||
echo "--Видео с экрана | iconName=simplescreenrecorder bash='simplescreenrecorder' terminal=false"
|
||
|
||
echo "Соотношение сторон | iconName=video-display"
|
||
echo "--XRandr: 2K 21:9 | iconName=view-fullscreen bash='xrandr --output DP-4 --mode 3440x1440 --rate 165 --scale 1.7x1.7' terminal=false"
|
||
echo "--XRandr: 2K 16:9 | iconName=view-fullscreen bash='xrandr --output DP-4 --mode 2560x1440 --rate 60 --scale 1.7x1.7' terminal=false"
|
||
|
||
echo "Размер активного окна | iconName=preferences-system-windows"
|
||
echo "--Установить 1920x1080 через 2 секунды | iconName=view-fullscreen bash='sleep 2 && wmctrl -i -r \`xdotool getwindowfocus\` -e 0,0,0,1920,1080' terminal=false"
|
||
echo "--Установить 2560x1440 через 2 секунды | iconName=view-fullscreen bash='sleep 2 && wmctrl -i -r \`xdotool getactivewindow\` -e 0,0,0,2560,1440' terminal=false"
|