From cd14df1f111da2cea10b995e9779625141fc6422 Mon Sep 17 00:00:00 2001 From: oxaliq Date: Fri, 12 Apr 2024 14:50:55 -0400 Subject: [PATCH 01/10] change default chat.log location and tone of prompts --- heed | 13 +++++++++---- proclaim | 34 +++++++++++++++++++--------------- scry | 3 ++- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/heed b/heed index 96a82d5..8fa5231 100755 --- a/heed +++ b/heed @@ -1,12 +1,17 @@ #!/bin/sh -e +chatlog=var/log/bunkchat/chat.log + clear -figlet -f future heed - bunkchat +echo "╻ ╻┏━╸┏━╸╺┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" +echo "┣━┫┣╸ ┣╸ ┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " +echo "╹ ╹┗━╸┗━╸╺┻┛ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " + echo "#######################################################################" -echo "# Take heed, $USER! This is a group chat with everyone on the server! #" -echo "# You can view earlier chat with 'scry' or 'less /srv/bunkchat.txt' #" +echo " Take heed, $USER! This is a group chat with everyone on the server!" +echo " You can view earlier chat with 'scry' or 'less /srv/bunkchat.txt'" echo "#######################################################################" echo -tail -f /srv/bunkchat.txt +tail -f $chatlog diff --git a/proclaim b/proclaim index 48391ce..bc4213d 100755 --- a/proclaim +++ b/proclaim @@ -1,17 +1,18 @@ -#!/bin/bash -e +#!/bin/sh -e # make username uppercase username=$(echo "$USER" | tr '[:lower:]' '[:upper:]') -timezone="America/New_York" -declare prompt +timezone=UTC +chatlog=/var/log/bunkchat/chat.log +prompt="" makeSlug () { - # make time and date - time=$(TZ=${timezone} date +%I:%M%p) - date=$(TZ=${timezone} date +%m/%d) + # make time and date + time=$(TZ=${timezone} date +%I:%M%p) + date=$(TZ=${timezone} date +%m/%d) - # make name/time string - prompt="${username}-${date}-${time}" + # make name/time string + prompt="${username}-${date}-${time}" } # enter bunkchat mode (clear the screen) @@ -19,11 +20,14 @@ clear while true do - figlet -f future proclaim - bunkchat - echo "You may view old chat with 'scry', heathen." - echo "-------------------------------------------" - read -r -p "speak to the server: " text - makeSlug - echo "${prompt}: $text" >> /srv/bunkchat.txt - clear + echo "┏━┓┏━┓┏━┓┏━╸╻ ┏━┓╻┏┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" + echo "┣━┛┣┳┛┃ ┃┃ ┃ ┣━┫┃┃┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " + echo "╹ ╹┗╸┗━┛┗━╸┗━╸╹ ╹╹╹ ╹ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " + echo "You may view old chat with 'scry'!" + echo "----------------------------------" + printf "speak to the server: " >&2 + read -r text + makeSlug + echo "${prompt}: $text" >> $chatlog + clear done diff --git a/scry b/scry index 432c623..1fe2cdf 100755 --- a/scry +++ b/scry @@ -1,3 +1,4 @@ #!/bin/sh -e +chatlog=/var/log/bunkchat/chat.log -less /srv/bunkchat.txt +less $chatlog -- 2.45.2 From 7f11ba1b611b4ca367156e1bf198dae6feb06ea3 Mon Sep 17 00:00:00 2001 From: oxaliq Date: Sat, 13 Apr 2024 14:48:32 -0400 Subject: [PATCH 02/10] add install script --- build | 43 +++++++++++++++++++++++++++++++++++++++++++ proclaim | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100755 build diff --git a/build b/build new file mode 100755 index 0000000..ddeb17b --- /dev/null +++ b/build @@ -0,0 +1,43 @@ +#!/bin/sh -e +# install.sh +installtarget=/usr/local/bin +chatlogdir=/var/log/bunkchat +chatlog=chat.log + +if ! [$(id -u) = 0]; then + echo "ERROR: please run install with root permission" >&2 + exit 1 +fi + +chattrfailed() { + set +e + rm -rf $chatlogdir + echo + echo "ERROR: could not set append only attribute in ${chatlogdir}" + echo " does your filesystem support 'chattr +a' ?" + exit 1 +} + +# do this setup first in case chattr fails +# mk chat directory and touch file +mkdir $chatlogdir +chmod 755 $chatlogdir + +touch ${chatlogdir}/${chatlog} +chmod 666 ${chatlogdir}/${chatlog} +# if chattr +a not supported on this file system catch error and clean up +chattr +a ${chatlogdir}/${chatlog} || chattrfailed + +cp proclaim heed scry $installtarget + +chmod 755 ${installtarget}/proclaim +chmod 755 ${installtarget}/heed +chmod 755 ${installtarget}/scry + +chown root:root ${installtarget}/proclaim +chown root:root ${installtarget}/heed +chown root:root ${installtarget}/scry + + +echo "SUCCESS! bunkchat installed!" +exit 0 diff --git a/proclaim b/proclaim index bc4213d..b958e0b 100755 --- a/proclaim +++ b/proclaim @@ -25,7 +25,7 @@ do echo "╹ ╹┗╸┗━┛┗━╸┗━╸╹ ╹╹╹ ╹ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " echo "You may view old chat with 'scry'!" echo "----------------------------------" - printf "speak to the server: " >&2 + printf "speak to the server: " read -r text makeSlug echo "${prompt}: $text" >> $chatlog -- 2.45.2 From ef8b1bbcb29f031d3e2aa3f3e436d386bfebc356 Mon Sep 17 00:00:00 2001 From: maren Date: Sat, 13 Apr 2024 15:13:03 -0400 Subject: [PATCH 03/10] fix install script --- build => install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename build => install.sh (97%) diff --git a/build b/install.sh similarity index 97% rename from build rename to install.sh index ddeb17b..dc110ee 100755 --- a/build +++ b/install.sh @@ -4,7 +4,7 @@ installtarget=/usr/local/bin chatlogdir=/var/log/bunkchat chatlog=chat.log -if ! [$(id -u) = 0]; then +if ! [ "$(id -u)" = 0 ]; then echo "ERROR: please run install with root permission" >&2 exit 1 fi -- 2.45.2 From 06725dfcd507e0e99aefb313fe296a4f54813d10 Mon Sep 17 00:00:00 2001 From: maren Date: Sat, 13 Apr 2024 15:21:16 -0400 Subject: [PATCH 04/10] fix path typo also modify info prompt --- heed | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/heed b/heed index 8fa5231..374bba2 100755 --- a/heed +++ b/heed @@ -1,6 +1,6 @@ #!/bin/sh -e -chatlog=var/log/bunkchat/chat.log +chatlog=/var/log/bunkchat/chat.log clear @@ -10,7 +10,7 @@ echo "╹ ╹┗━╸┗━╸╺┻┛ ┗━┛┗━┛╹ ╹╹ echo "#######################################################################" echo " Take heed, $USER! This is a group chat with everyone on the server!" -echo " You can view earlier chat with 'scry' or 'less /srv/bunkchat.txt'" +echo " You can view earlier chat with 'scry'!" echo "#######################################################################" echo -- 2.45.2 From b13b57f15b5df5cb028f60c326d5f353ac7cc477 Mon Sep 17 00:00:00 2001 From: maren Date: Sat, 13 Apr 2024 19:35:41 -0400 Subject: [PATCH 05/10] handle re-install gracefully --- install.sh | 57 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/install.sh b/install.sh index dc110ee..c82315c 100755 --- a/install.sh +++ b/install.sh @@ -1,14 +1,9 @@ #!/bin/sh -e -# install.sh + installtarget=/usr/local/bin chatlogdir=/var/log/bunkchat chatlog=chat.log -if ! [ "$(id -u)" = 0 ]; then - echo "ERROR: please run install with root permission" >&2 - exit 1 -fi - chattrfailed() { set +e rm -rf $chatlogdir @@ -18,26 +13,38 @@ chattrfailed() { exit 1 } -# do this setup first in case chattr fails -# mk chat directory and touch file -mkdir $chatlogdir -chmod 755 $chatlogdir +prep() { + mkdir -p $chatlogdir + chmod 755 $chatlogdir + touch ${chatlogdir}/${chatlog} + chmod 666 ${chatlogdir}/${chatlog} + # if chattr +a not supported on this file system, catch error and clean up + chattr +a ${chatlogdir}/${chatlog} || chattrfailed +} -touch ${chatlogdir}/${chatlog} -chmod 666 ${chatlogdir}/${chatlog} -# if chattr +a not supported on this file system catch error and clean up -chattr +a ${chatlogdir}/${chatlog} || chattrfailed +install() { + cp proclaim heed scry $installtarget + chmod 755 ${installtarget}/proclaim + chmod 755 ${installtarget}/heed + chmod 755 ${installtarget}/scry + chown root:root ${installtarget}/proclaim + chown root:root ${installtarget}/heed + chown root:root ${installtarget}/scry -cp proclaim heed scry $installtarget + echo "SUCCESS! bunkchat installed!" + exit 0 +} -chmod 755 ${installtarget}/proclaim -chmod 755 ${installtarget}/heed -chmod 755 ${installtarget}/scry +# check for root perms +if ! [ "$(id -u)" = 0 ]; then + echo "ERROR: please run install with root permission" >&2 + exit 1 +fi -chown root:root ${installtarget}/proclaim -chown root:root ${installtarget}/heed -chown root:root ${installtarget}/scry - - -echo "SUCCESS! bunkchat installed!" -exit 0 +# if chat.log exists, skip prep +if [ -f ${chatlogdir}/${chatlog} ]; then + install +else + prep + install +fi -- 2.45.2 From 08646a05d44a55d8f0ba3e65b7977a7cf8c7a1bb Mon Sep 17 00:00:00 2001 From: maren Date: Sat, 13 Apr 2024 19:36:15 -0400 Subject: [PATCH 06/10] fuss with prompts --- heed | 9 ++++----- proclaim | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/heed b/heed index 374bba2..9a6d241 100755 --- a/heed +++ b/heed @@ -7,11 +7,10 @@ clear echo "╻ ╻┏━╸┏━╸╺┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" echo "┣━┫┣╸ ┣╸ ┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " echo "╹ ╹┗━╸┗━╸╺┻┛ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " - -echo "#######################################################################" -echo " Take heed, $USER! This is a group chat with everyone on the server!" -echo " You can view earlier chat with 'scry'!" -echo "#######################################################################" +echo "Take heed, $USER! This is a group chat with everyone on the server!" +echo "You may post in chat with 'proclaim'!" +echo "You may view old chat with 'scry'!" +echo "----------------------------------" echo tail -f $chatlog diff --git a/proclaim b/proclaim index b958e0b..1d09759 100755 --- a/proclaim +++ b/proclaim @@ -23,6 +23,7 @@ do echo "┏━┓┏━┓┏━┓┏━╸╻ ┏━┓╻┏┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" echo "┣━┛┣┳┛┃ ┃┃ ┃ ┣━┫┃┃┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " echo "╹ ╹┗╸┗━┛┗━╸┗━╸╹ ╹╹╹ ╹ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " + echo "You may view current chat with 'heed'!" echo "You may view old chat with 'scry'!" echo "----------------------------------" printf "speak to the server: " -- 2.45.2 From 29d6b0de4502e12e91e7c982f14d05f5fb014015 Mon Sep 17 00:00:00 2001 From: maren Date: Sat, 13 Apr 2024 19:39:57 -0400 Subject: [PATCH 07/10] prompt fuss --- proclaim | 1 + 1 file changed, 1 insertion(+) diff --git a/proclaim b/proclaim index 1d09759..1fd1777 100755 --- a/proclaim +++ b/proclaim @@ -23,6 +23,7 @@ do echo "┏━┓┏━┓┏━┓┏━╸╻ ┏━┓╻┏┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" echo "┣━┛┣┳┛┃ ┃┃ ┃ ┣━┫┃┃┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " echo "╹ ╹┗╸┗━┛┗━╸┗━╸╹ ╹╹╹ ╹ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " + echo "Proclaim your musings, $USER! This is a group chat with everyone on the server!" echo "You may view current chat with 'heed'!" echo "You may view old chat with 'scry'!" echo "----------------------------------" -- 2.45.2 From d3145c607350b60ea6d2ddd4eb03e7bbd9512885 Mon Sep 17 00:00:00 2001 From: oxaliq Date: Mon, 15 Apr 2024 14:05:55 -0400 Subject: [PATCH 08/10] refactor bunkdeck with some add'l error handling and fixed format --- bunkdeck | 229 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 134 insertions(+), 95 deletions(-) diff --git a/bunkdeck b/bunkdeck index 907abaf..6de1c9a 100755 --- a/bunkdeck +++ b/bunkdeck @@ -1,121 +1,160 @@ -#!/bin/bash -set -e +#!/bin/sh -e +sessionname=bunkdeck heedPane="bunkdeck:0.0" proclaimPane="bunkdeck:0.1" shellPane="bunkdeck:0.2" -function isExistingDeck { - set +e - sessions=$(tmux list-sessions) - set -e +isExistingDeck () { + # format `-F '#S' # formats the result as just the session name` + # filter `-f "{==:#S,${sessionname}}` # only returns sessions named $sessionname + # capture error and redirect + sessions=$(tmux list-sessions -F '#S' -f "#{==:#S,${sessionname}}" 2>/dev/null) - if [[ $sessions == *"bunkdeck"* ]]; then - return 0 - else - return 1 - fi + if [ "${sessions}" = "${sessionname}" ] ; then + return 0 + else + return 1 + fi } -function startNewDeck { - tmux new -d -s bunkdeck heed - tmux split-window -h -t bunkdeck -p 70 - tmux split-window -t $heedPane -v -p 3 - tmux send-keys -t $proclaimPane 'proclaim' C-m - tmux send-keys -t $shellPane 'cowsay "press [CTRL+b then o] to cycle through panes"' C-m - # turn on pane titling - tmux select-pane -t $heedPane -T heed - tmux select-pane -t $proclaimPane -T proclaim - tmux select-pane -t $shellPane -T shell - tmux set -g set-titles on - # attach session to shell - tmux attach -t $shellPane +attachToDeck () { + tmux attach-session -t bunkdeck } -function killDeck { - tmux kill-session -t bunkdeck +startNewDeck () { + tmux new -d -s $sessionname heed + tmux split-window -h -t $sessionname -p 70 + tmux split-window -t $heedPane -v -p 3 + tmux send-keys -t $proclaimPane 'proclaim' C-m + tmux send-keys -t $shellPane 'cowsay "press [CTRL+b then o] to cycle through panes"' C-m + # turn on pane titling + tmux select-pane -t $heedPane -T heed + tmux select-pane -t $proclaimPane -T proclaim + tmux select-pane -t $shellPane -T shell + tmux set -g set-titles on + # attach session to shell + tmux attach -t $shellPane } -function growPane { - case $2 in - shell) - tmux resize-pane -t $shellPane -L "$3" - ;; - proclaim) - tmux resize-pane -t $proclaimPane -U "$3" - ;; - heed) - tmux resize-pane -t $heedPane -D "$3" - ;; - *) - echo "usage: bunkdeck grow [WINDOW] [SIZE]" - echo - echo "windows:" - echo " shell horizontally grow the shell window" - echo " proclaim vertically grow the window where you send text" - echo " heed vertically grow the window where you read texts" +killDeck () { + if isExistingDeck; then + tmux kill-session -t $sessionname + else + echo "you don't have bunkdeck running!" + fi +} + +leaveDeck () { + # currently assumes that bunkdeck is only session running + # if bunkdeck leave is issued from within another session, silent failure occurs + if isExistingDeck && [ "${TMUX}" != "" ]; then + tmux detach -s $sessionname + echo "you are not inside bunkdeck! for help:" + echo "$ bunkdeck help" + fi +} + +growPane () { + case $2 in + shell) + tmux resize-pane -t $shellPane -L "$3" + ;; + proclaim) + tmux resize-pane -t $proclaimPane -U "$3" + ;; + heed) + tmux resize-pane -t $heedPane -D "$3" + ;; + *) + echo "usage: bunkdeck grow [WINDOW] [SIZE]" + echo + echo "windows:" + echo " shell horizontally grow the shell window" + echo " proclaim vertically grow the window where you send text" + echo " heed vertically grow the window where you read texts" echo - echo "size:" - echo " number of cells to grow the selected window" - exit 1 - ;; - esac + echo "size:" + echo " number of cells to grow the selected window" + exit 1 + ;; + esac } -function shrinkPane { - case $2 in - shell) - tmux resize-pane -t $shellPane -R "$3" - ;; - proclaim) - tmux resize-pane -t $proclaimPane -D "$3" - ;; - heed) - tmux resize-pane -t $heedPane -U "$3" - ;; - *) - echo "usage: bunkdeck shrink [WINDOW] [SIZE]" - echo - echo "windows:" - echo " shell horizontally shrink the shell window" - echo " proclaim vertically shrink the window where you send text" - echo " heed vertically shrink the window where you read texts" +shrinkPane () { + case $2 in + shell) + tmux resize-pane -t $shellPane -R "$3" + ;; + proclaim) + tmux resize-pane -t $proclaimPane -D "$3" + ;; + heed) + tmux resize-pane -t $heedPane -U "$3" + ;; + *) + echo "usage: bunkdeck shrink [WINDOW] [SIZE]" + echo + echo "windows:" + echo " shell horizontally shrink the shell window" + echo " proclaim vertically shrink the window where you send text" + echo " heed vertically shrink the window where you read texts" echo - echo "size:" - echo " number of cells to shrink the selected window" - exit 1 - ;; - esac + echo "size:" + echo " number of cells to shrink the selected window" + exit 1 + ;; + esac } +helpText () { + usageText + echo + echo "help:" + echo + echo " movement:" + echo " bunkdeck gives you three panes, 'proclaim' to chat, 'heed' to read chats" + echo " and 'shell' to do whatever you want!" + echo " to move between panes you press [CTL + b] at the same time" + echo " then [arrow key] to move to a new pane, or 'o' to cycle around" +} -case $1 in - - kill) - killDeck - ;; - "") - if isExistingDeck; then - tmux attach-session -t bunkdeck - else - startNewDeck - fi - ;; - grow) - growPane "$@" - ;; - shrink) - shrinkPane "$@" - ;; - *) +usageText () { echo "usage: bunkdeck [COMMAND]" echo echo "commands:" echo " (none) attach to existing bunkdeck or start new one" echo " kill kill running bunkdeck" - echo " grow grow the size of a bunkdeck window" + echo " leave close bunkdeck without killing it" + echo " grow grow the size of a bunkdeck window" echo " shrink shrink the size of a bunkdeck window" - exit 1 - ;; -esac +} +case $1 in + + kill) + killDeck + ;; + "") + if isExistingDeck; then + attachToDeck + else + startNewDeck + fi + ;; + leave) + leaveDeck + ;; + grow) + growPane "$@" + ;; + shrink) + shrinkPane "$@" + ;; + help) + helpText + ;; + *) + usageText + ;; +esac -- 2.45.2 From 383580a1ee75fafe299f88c18368d19c537a4090 Mon Sep 17 00:00:00 2001 From: oxaliq Date: Mon, 22 Apr 2024 15:26:03 -0400 Subject: [PATCH 09/10] remove bunkchat from repo --- bunkdeck | 16 ++++++---------- heed | 16 ---------------- install.sh | 49 ++----------------------------------------------- proclaim | 35 ----------------------------------- readme.md | 7 ++----- scry | 4 ---- 6 files changed, 10 insertions(+), 117 deletions(-) delete mode 100755 heed delete mode 100755 proclaim delete mode 100755 scry diff --git a/bunkdeck b/bunkdeck index 6de1c9a..590c05f 100755 --- a/bunkdeck +++ b/bunkdeck @@ -1,17 +1,12 @@ #!/bin/sh -e sessionname=bunkdeck -heedPane="bunkdeck:0.0" -proclaimPane="bunkdeck:0.1" -shellPane="bunkdeck:0.2" +heedPane=bunkdeck:0.0 +proclaimPane=bunkdeck:0.1 +shellPane=bunkdeck:0.2 isExistingDeck () { - # format `-F '#S' # formats the result as just the session name` - # filter `-f "{==:#S,${sessionname}}` # only returns sessions named $sessionname - # capture error and redirect - sessions=$(tmux list-sessions -F '#S' -f "#{==:#S,${sessionname}}" 2>/dev/null) - - if [ "${sessions}" = "${sessionname}" ] ; then + if tmux has -t $sessionname ; then return 0 else return 1 @@ -19,7 +14,8 @@ isExistingDeck () { } attachToDeck () { - tmux attach-session -t bunkdeck + # does not currently protect against nesting sessions (tmux does this for us) + tmux attach-session -d -t bunkdeck } startNewDeck () { diff --git a/heed b/heed deleted file mode 100755 index 9a6d241..0000000 --- a/heed +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -e - -chatlog=/var/log/bunkchat/chat.log - -clear - -echo "╻ ╻┏━╸┏━╸╺┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" -echo "┣━┫┣╸ ┣╸ ┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " -echo "╹ ╹┗━╸┗━╸╺┻┛ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " -echo "Take heed, $USER! This is a group chat with everyone on the server!" -echo "You may post in chat with 'proclaim'!" -echo "You may view old chat with 'scry'!" -echo "----------------------------------" -echo - -tail -f $chatlog diff --git a/install.sh b/install.sh index c82315c..046586a 100755 --- a/install.sh +++ b/install.sh @@ -1,50 +1,5 @@ #!/bin/sh -e -installtarget=/usr/local/bin -chatlogdir=/var/log/bunkchat -chatlog=chat.log -chattrfailed() { - set +e - rm -rf $chatlogdir - echo - echo "ERROR: could not set append only attribute in ${chatlogdir}" - echo " does your filesystem support 'chattr +a' ?" - exit 1 -} - -prep() { - mkdir -p $chatlogdir - chmod 755 $chatlogdir - touch ${chatlogdir}/${chatlog} - chmod 666 ${chatlogdir}/${chatlog} - # if chattr +a not supported on this file system, catch error and clean up - chattr +a ${chatlogdir}/${chatlog} || chattrfailed -} - -install() { - cp proclaim heed scry $installtarget - chmod 755 ${installtarget}/proclaim - chmod 755 ${installtarget}/heed - chmod 755 ${installtarget}/scry - chown root:root ${installtarget}/proclaim - chown root:root ${installtarget}/heed - chown root:root ${installtarget}/scry - - echo "SUCCESS! bunkchat installed!" - exit 0 -} - -# check for root perms -if ! [ "$(id -u)" = 0 ]; then - echo "ERROR: please run install with root permission" >&2 - exit 1 -fi - -# if chat.log exists, skip prep -if [ -f ${chatlogdir}/${chatlog} ]; then - install -else - prep - install -fi +# pull in bunkchat +# run bunkchat install script diff --git a/proclaim b/proclaim deleted file mode 100755 index 1fd1777..0000000 --- a/proclaim +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -e - -# make username uppercase -username=$(echo "$USER" | tr '[:lower:]' '[:upper:]') -timezone=UTC -chatlog=/var/log/bunkchat/chat.log -prompt="" - -makeSlug () { - # make time and date - time=$(TZ=${timezone} date +%I:%M%p) - date=$(TZ=${timezone} date +%m/%d) - - # make name/time string - prompt="${username}-${date}-${time}" -} - -# enter bunkchat mode (clear the screen) -clear - -while true -do - echo "┏━┓┏━┓┏━┓┏━╸╻ ┏━┓╻┏┳┓ ┏┓ ╻ ╻┏┓╻╻┏ ┏━╸╻ ╻┏━┓╺┳╸" - echo "┣━┛┣┳┛┃ ┃┃ ┃ ┣━┫┃┃┃┃ ╺━╸ ┣┻┓┃ ┃┃┗┫┣┻┓┃ ┣━┫┣━┫ ┃ " - echo "╹ ╹┗╸┗━┛┗━╸┗━╸╹ ╹╹╹ ╹ ┗━┛┗━┛╹ ╹╹ ╹┗━╸╹ ╹╹ ╹ ╹ " - echo "Proclaim your musings, $USER! This is a group chat with everyone on the server!" - echo "You may view current chat with 'heed'!" - echo "You may view old chat with 'scry'!" - echo "----------------------------------" - printf "speak to the server: " - read -r text - makeSlug - echo "${prompt}: $text" >> $chatlog - clear -done diff --git a/readme.md b/readme.md index 5741545..2543c3a 100644 --- a/readme.md +++ b/readme.md @@ -6,11 +6,8 @@ tmux wraps some hand-rolled local chat scripts, and the`bunkdeck` command starts bunkdeck is comprised of these lil things: * `bunkdeck` - run this command to start the interface -* `proclaim` - post in chat -* `heed` - read the chat -* `scry` - read the old chat +* `bunkchat` - the actual chat functionality [git](https://git.bunk.computer/bunk/bunkchat) on the server, these are all installed in `/usr/local/bin` so everyone can run them -the file they all interact with, `/srv/bunkchat.txt` has permissions such that everyone can read and write to it - +the file they all interact with, `/var/log/bunkchat/chat.log` is append-only diff --git a/scry b/scry deleted file mode 100755 index 1fe2cdf..0000000 --- a/scry +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -e -chatlog=/var/log/bunkchat/chat.log - -less $chatlog -- 2.45.2 From 434cb22405c0c24a1b779e0e1e72e96200b7fe1e Mon Sep 17 00:00:00 2001 From: oxaliq Date: Mon, 22 Apr 2024 16:15:21 -0400 Subject: [PATCH 10/10] add delete script --- delete.sh | 6 ++++++ install.sh | 8 ++++++++ 2 files changed, 14 insertions(+) create mode 100644 delete.sh diff --git a/delete.sh b/delete.sh new file mode 100644 index 0000000..1e84a94 --- /dev/null +++ b/delete.sh @@ -0,0 +1,6 @@ +#!/bin/sh -e +chatlog=/var/log/bunkchat/chat.log + +chattr -a $chatlog +echo > $chatlog +chattr +a $chatlog diff --git a/install.sh b/install.sh index 046586a..04a2535 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,13 @@ #!/bin/sh -e +# TODO +# check for tmux and cowsay + +# if not prompt and exit # pull in bunkchat # run bunkchat install script +# install buckdeck in /usr/local/bin + +# prompt user to install delete.sh in /root/crontab-scripts/delete-bunkchat.sh +# prompt with crontab config -- 2.45.2