diff --git a/README.md b/README.md index 3aec5de..e7c42e9 100644 --- a/README.md +++ b/README.md @@ -15,15 +15,15 @@ See [Screenshots](#screenshots) section ### Ubuntu/Debian-based Download .deb package from [Releases](https://git.digitalstudium.com/digitalstudium/run/releases), then install it ``` -sudo apt install ~/Downloads/gui-scripts_*.deb +sudo apt install ~/Downloads/tui-scripts_*.deb ``` ### Other linux distros Install dependencies: `fzf`, `dialog`, `xdotool`, `x11-xkb-utils` Then clone this repo and copy all scripts to one of the PATH folder: ``` -git clone https://git.digitalstudium.com/digitalstudium/gui-scripts.git -sudo cp gui-scripts/{a,g,s,r,k} /usr/local/bin/ +git clone https://git.digitalstudium.com/digitalstudium/tui-scripts.git +sudo cp tui-scripts/{a,g,s,r,k} /usr/local/bin/ ``` ## Screenshots diff --git a/VERSION b/VERSION index 2e0e38c..c044b1a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.9 +1.10 diff --git a/create_deb_package.sh b/create_deb_package.sh index 0d4a941..411e3b6 100755 --- a/create_deb_package.sh +++ b/create_deb_package.sh @@ -1,9 +1,9 @@ -rm -rf gui-scripts* -mkdir -p gui-scripts_$(cat VERSION)-1/usr/local/bin -mkdir -p gui-scripts_$(cat VERSION)-1/DEBIAN +rm -rf tui-scripts* +mkdir -p tui-scripts_$(cat VERSION)-1/usr/local/bin +mkdir -p tui-scripts_$(cat VERSION)-1/DEBIAN -cat > gui-scripts_$(cat VERSION)-1/DEBIAN/control << EOL -Package: gui-scripts +cat > tui-scripts_$(cat VERSION)-1/DEBIAN/control << EOL +Package: tui-scripts Version: $(cat VERSION)-1 Section: base Priority: optional @@ -16,9 +16,9 @@ EOL for script in a k g r s; do - cp $script gui-scripts_$(cat VERSION)-1/usr/local/bin + cp $script tui-scripts_$(cat VERSION)-1/usr/local/bin done -dpkg-deb --build gui-scripts_$(cat VERSION)-1 +dpkg-deb --build tui-scripts_$(cat VERSION)-1 diff --git a/tui-scripts_1.10-1.deb b/tui-scripts_1.10-1.deb new file mode 100644 index 0000000..bf53caa Binary files /dev/null and b/tui-scripts_1.10-1.deb differ diff --git a/tui-scripts_1.10-1/DEBIAN/control b/tui-scripts_1.10-1/DEBIAN/control new file mode 100644 index 0000000..b7a9acc --- /dev/null +++ b/tui-scripts_1.10-1/DEBIAN/control @@ -0,0 +1,9 @@ +Package: tui-scripts +Version: 1.10-1 +Section: base +Priority: optional +Architecture: amd64 +Depends: fzf, dialog (>= 1.3), xdotool, x11-xkb-utils +Maintainer: Konstantin Shutkin +Description: GUI scripts + GUI scripts for popular cli tools, based on dialog and fzf diff --git a/tui-scripts_1.10-1/usr/local/bin/a b/tui-scripts_1.10-1/usr/local/bin/a new file mode 100755 index 0000000..387ab66 --- /dev/null +++ b/tui-scripts_1.10-1/usr/local/bin/a @@ -0,0 +1,18 @@ +#!/bin/bash +set -e +trap 'clear' SIGINT +cat > /tmp/.dialogrc << EOL +# Item color +tag_color = (BLACK,WHITE,ON) +EOL +action=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --menu "Choose the action for apt" 10 40 0 "Install" 1 "Install from .deb file" 2 "Update" 3 "Upgrade" 4 "Remove" 5 "Autoremove" 6) + + +if [[ $action == "Install" || $action == "Remove" ]]; then + package=$(apt-cache search '' | sort | cut --delimiter ' ' --fields 1 | fzf --multi --cycle --reverse --preview 'apt-cache show {1}') + sudo apt ${action,,} $package -y +elif [[ $action == "Install from .deb file" ]]; then + find . -name "*.deb" | fzf | xargs -I _ sudo apt install -y _ +elif [[ $action == "Update" || $action == "Upgrade" || $action == "Autoremove" ]]; then + sudo apt ${action,,} -y +fi diff --git a/tui-scripts_1.10-1/usr/local/bin/g b/tui-scripts_1.10-1/usr/local/bin/g new file mode 100755 index 0000000..9824a5f --- /dev/null +++ b/tui-scripts_1.10-1/usr/local/bin/g @@ -0,0 +1,35 @@ +#!/bin/bash +set -e +trap 'clear' SIGINT +cat > /tmp/.dialogrc << EOL +# Item color +tag_color = (BLACK,WHITE,ON) +EOL +set +ex +action=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --menu "Choose the action for git" 10 40 0 'Add all && Commit && Push' 1 "Add all && Commit" 2 "Reset soft" 3 "Reset hard" 4 "Status" 5 "Clone submodules" 6) + +#echo $action +#exit + +if [[ $action == "Add all && Commit && Push" ]]; then + commit_message=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --title "$action" --inputbox "Enter the commit message:" 8 40) + git add . + git commit -"m $commit_message" + git push +elif [[ $action == "Add all && Commit" ]]; then + commit_message=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --title "$action" --inputbox "Enter the commit message:" 8 40) + git add . + git commit -"m $commit_message" +elif [[ $action == "Reset soft" ]]; then + if DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --yesno "Do you wanna soft reset git?" 10 40; then + git reset + fi +elif [[ $action == "Reset hard" ]]; then + if DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --yesno "Do you wanna hard reset git?" 10 40; then + git reset --hard + fi +elif [[ $action == "Status" ]]; then + git status +elif [[ $action == "Clone submodules" ]]; then + git submodule update --init --recursive +fi diff --git a/tui-scripts_1.10-1/usr/local/bin/k b/tui-scripts_1.10-1/usr/local/bin/k new file mode 100755 index 0000000..cd20219 --- /dev/null +++ b/tui-scripts_1.10-1/usr/local/bin/k @@ -0,0 +1,31 @@ +#!/bin/bash +set -e +trap 'clear' SIGINT +cat > /tmp/.dialogrc << EOL +# Item color +tag_color = (BLACK,WHITE,ON) +EOL +namespace=$(kubectl get ns --no-headers | awk '{ print $1 }' | fzf --multi --cycle --reverse --preview 'kubectl get pods -o wide -n {1}') +resource=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --menu "Choose resource in $namespace" 10 40 0 "Pods" 1 "Services" 2 "Ingress" 3 "Secrets" 4) +set +ex + + +if [ "$resource" = "Pods" ]; then + pod=$(kubectl -n $namespace get pods --no-headers | awk '{ print $1 }' | fzf --multi --cycle --reverse --preview "kubectl get pod -n $namespace {1} -o yaml") + if [ ! -z "$pod" ]; then + action=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --menu "Choose action for $pod in $namespace" 10 40 0 "Logs" 1 "Describe pod" 2 "Exec -it" 3 "Delete pod" 4) + fi + if [ ! -z "$action" ]; then + xdotool type --delay 0 "kubectl -n $namespace ${action,,} $pod" && xdotool key --delay 0 Return + fi +elif [ "$resource" = "Services" ]; then + svc=$(kubectl -n $namespace get svc --no-headers | awk '{ print $1 }' | fzf --multi --cycle --reverse --preview "kubectl get svc -n $namespace {1} -o yaml") + if [ ! -z "$svc" ]; then + action=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --menu "Choose action for $pod in $namespace" 10 40 0 "Get endpoints" 1 "Edit service" 2) + fi + if [ ! -z "$action" ]; then + xdotool type --delay 0 "kubectl -n $namespace ${action,,} $svc" && xdotool key --delay 0 Return + fi +fi + + diff --git a/tui-scripts_1.10-1/usr/local/bin/r b/tui-scripts_1.10-1/usr/local/bin/r new file mode 100755 index 0000000..d56d102 --- /dev/null +++ b/tui-scripts_1.10-1/usr/local/bin/r @@ -0,0 +1,4 @@ +#!/bin/bash +trap 'clear' SIGINT +setxkbmap +cat ~/.aliases.txt | fzf | cut -d : -f 2- | sed s/\ // | (stty -F /dev/tty -echo; xargs -0 -I _ xdotool type --delay 0 _; stty -F /dev/tty echo) && xdotool key Return diff --git a/tui-scripts_1.10-1/usr/local/bin/s b/tui-scripts_1.10-1/usr/local/bin/s new file mode 100755 index 0000000..c098b6c --- /dev/null +++ b/tui-scripts_1.10-1/usr/local/bin/s @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +trap 'clear' SIGINT +cat > /tmp/.dialogrc << EOL +# Item color +tag_color = (BLACK,WHITE,ON) +EOL +service=$(systemctl list-units --type service --all --plain --quiet | awk '{ print $1 }' | fzf --multi --cycle --reverse --preview 'SYSTEMD_COLORS=1 systemctl status --no-pager {1}') +set +ex +action=$(DIALOGRC=/tmp/.dialogrc dialog --stdout --erase-on-exit --menu "Choose the action for $service" 10 40 0 "Start" 1 "Stop" 2 "Disable" 3 "Enable" 4) + + +if [ ! -z $action ]; then + sudo systemctl ${action,,} $service +fi