From 91a7c7e9c4748c7176fbc18b4e00c23de9b9c3fb Mon Sep 17 00:00:00 2001 From: Digital Studium Date: Sat, 6 Apr 2024 17:43:20 +0300 Subject: [PATCH] Rename to tui-scripts --- README.md | 6 ++--- VERSION | 2 +- create_deb_package.sh | 14 ++++++------ tui-scripts_1.10-1.deb | Bin 0 -> 2124 bytes tui-scripts_1.10-1/DEBIAN/control | 9 ++++++++ tui-scripts_1.10-1/usr/local/bin/a | 18 +++++++++++++++ tui-scripts_1.10-1/usr/local/bin/g | 35 +++++++++++++++++++++++++++++ tui-scripts_1.10-1/usr/local/bin/k | 31 +++++++++++++++++++++++++ tui-scripts_1.10-1/usr/local/bin/r | 4 ++++ tui-scripts_1.10-1/usr/local/bin/s | 15 +++++++++++++ 10 files changed, 123 insertions(+), 11 deletions(-) create mode 100644 tui-scripts_1.10-1.deb create mode 100644 tui-scripts_1.10-1/DEBIAN/control create mode 100755 tui-scripts_1.10-1/usr/local/bin/a create mode 100755 tui-scripts_1.10-1/usr/local/bin/g create mode 100755 tui-scripts_1.10-1/usr/local/bin/k create mode 100755 tui-scripts_1.10-1/usr/local/bin/r create mode 100755 tui-scripts_1.10-1/usr/local/bin/s 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 0000000000000000000000000000000000000000..bf53caa10f61d2040018ee03990e40b2061e921f GIT binary patch literal 2124 zcma)-X*d*$8pp>LCdV!`ma!8JgFz)^C#kGs7-k`3$z;NqDSLAn$2KR92#GA2B>OHi zO_q{F7!^fDmh2&Aa69+j({t{pd;ib-ywCG~_Kj50Va8A}SntRDSBL8985tUa!9VIhLIL$5dO$2bEP{X!g+!nUkZAJ% z;fEUi^zRvy;RpbL_Y=FpmbZJFJN|+a*Ac+Kb+P7L&$Pw?7aR$YKHMP}!*!+A8t~Cs9kDKx@(ERjAEsWkravMG-w~zmHw{MhE9um!VlNaT zRlM62GO0=v_t$ZG?I$$}qmoPDqEncZA~}~3Ma;<;98&nGcWAr2y=|qNTA=6PShBM= zG6{I-yzhf{`dN^@P$Z^9!0SqHzEpB-Sa+*R<~U5C|Wz`CpP+OrC$`xvw+$L?MB@-d|jcecs=^NEi^;G#wa1@Uk2 z$Z$cK)M0J;*_$gC_dmI(+z~kaQcP1rGIT94#q#cs(pE6g%~Pa1ffW~6jOR($U;lNq ziAUPN;WTyf$nf%PQPihP;}}T*pypsg&mffx1>oZR*gXK?)&oY=vI2Lx|3tv+h44p5 zpnrn>LG6Ft1{C%eTomxX*;XBnFXs9Q7kJ<>GkyMmujKD+Z42aB2axu{_kK)p`uQ_m z*gWCjN5%RE)|vNRpUFl~l$}gyfx}&LyeU@Op7r7UZ?&|pzkhVq`svW1T47SEv_pG- zl`N^Vge)#Kx^LL%a@*O8EO1qXR$K&SA27wngE@03OQuS1|2ETjbC8+BBFek zhts-u4j6`ewzzEG+(NX;dP~n%L2_c2N4+?N7Cc2AxhU^vV5<5IW%bMq4VSB<9t@jd}iu++C0Ah zS@1X$0=Z>ivsfs+n0kq|ybg~<7S~2l-$U6PmFr?QQ{<{=JR*tFk-AOgxV6i8iy1*fn{Iz~bxorLbl%tR z8nBJe`~GZw0BqizyEf02a`>Fj?Y`zyQ7x~#(5anqZL z%Nw(xxc91tSxKcX<`1lkb*}Ew8L=ejeqAkO+Qqe8RkiXgZ3312B)hm~c4VS1nrP#p zW2O@or%7-JQ#E^0m&WX~MKuk!S9O~ti&~}qZloxiX&4z>L(B50$eGtcTwux;KS5$z z{w8L~uBNB@=GnrWWj;~puwsuI#`LuW$agx-{>08oTIj&Q)uVzjU#j0t*DSCWgZM*D z_X0n~W@^d-!{%P!ASSlx5Ci8NQj8jVHI_ETWbbWe#BcKoG#fxGzlB!hSRLy$3oWs5wlZH=iXNux-gs#+T&v~}MgS3taWS>G{{G!Y|oWqyBf{Zy91#3WJdcSQ8Z zJ)aSk?}DJZW4nXkIhAhs8|!UxBT5}MZi*Z@<$TnSz^U+9*iK4m?`(`k{(_(kpnFbn z(@qtr&?7o53PzFXra~28tSFGD7XlN8-UL`HCc!H%`%X#Rwz!p&Q%ysq?qxRTV$x2S zRl6$T;^yrOgI4-NKxOf}481iktZ;6&r~NGc4N)M!+-qDr_hXmo@$B)ox`r{h{Vg}Q zbFGACG%``Nex<1u$EiAw4VSC!7F#!uquo@zGMUK~cbA$fIL!IuB3{{tBR<$+jXGGn z=QhJbRR^(%ACXIzQ8jGCI1ZWL@}20n;QHsU5}t&AE<}@Xu=F$OeeP|WTHK6xn`E0+ zv4jx1Eg)fwn*N93(;PZYl$+>eXxVtqT&~kW4HSn6-~8>OV}(e@g6IS9K0d*Mm~SN` fl9B%k= 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