remove bunkchat scripts (#2)

bunkdeck is now the repo for nice tools on top of bunkchat

includes `bunkdeck` for scripting terminal multiplexing and `delete.sh` to add to crontab for periodic flushing of chatlog

tested:
- [x] local
- [x] in tilde

Co-authored-by: maren <git@stillgreenmoss.net>
Reviewed-on: #2
Reviewed-by: maren <git@stillgreenmoss.net>
Co-authored-by: oxaliq <git@oxaliq.net>
Co-committed-by: oxaliq <git@oxaliq.net>
This commit is contained in:
sorrel 2024-04-22 20:45:27 +00:00 committed by sorrel
parent 2815067b1c
commit 8d976bfe63
7 changed files with 155 additions and 148 deletions

View file

@ -1,25 +1,26 @@
#!/bin/bash
set -e
#!/bin/sh -e
heedPane="bunkdeck:0.0"
proclaimPane="bunkdeck:0.1"
shellPane="bunkdeck:0.2"
sessionname=bunkdeck
heedPane=bunkdeck:0.0
proclaimPane=bunkdeck:0.1
shellPane=bunkdeck:0.2
function isExistingDeck {
set +e
sessions=$(tmux list-sessions)
set -e
if [[ $sessions == *"bunkdeck"* ]]; then
isExistingDeck () {
if tmux has -t $sessionname ; then
return 0
else
return 1
fi
}
function startNewDeck {
tmux new -d -s bunkdeck heed
tmux split-window -h -t bunkdeck -p 70
attachToDeck () {
# does not currently protect against nesting sessions (tmux does this for us)
tmux attach-session -d -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
@ -32,11 +33,25 @@ function startNewDeck {
tmux attach -t $shellPane
}
function killDeck {
tmux kill-session -t bunkdeck
killDeck () {
if isExistingDeck; then
tmux kill-session -t $sessionname
else
echo "you don't have bunkdeck running!"
fi
}
function growPane {
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"
@ -62,7 +77,7 @@ function growPane {
esac
}
function shrinkPane {
shrinkPane () {
case $2 in
shell)
tmux resize-pane -t $shellPane -R "$3"
@ -88,6 +103,28 @@ function shrinkPane {
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"
}
usageText () {
echo "usage: bunkdeck [COMMAND]"
echo
echo "commands:"
echo " (none) attach to existing bunkdeck or start new one"
echo " kill kill running bunkdeck"
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"
}
case $1 in
@ -96,26 +133,24 @@ case $1 in
;;
"")
if isExistingDeck; then
tmux attach-session -t bunkdeck
attachToDeck
else
startNewDeck
fi
;;
leave)
leaveDeck
;;
grow)
growPane "$@"
;;
shrink)
shrinkPane "$@"
;;
help)
helpText
;;
*)
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 " shrink shrink the size of a bunkdeck window"
exit 1
usageText
;;
esac

6
delete.sh Normal file
View file

@ -0,0 +1,6 @@
#!/bin/sh -e
chatlog=/var/log/bunkchat/chat.log
chattr -a $chatlog
echo > $chatlog
chattr +a $chatlog

12
heed
View file

@ -1,12 +0,0 @@
#!/bin/sh -e
clear
figlet -f future heed - bunkchat
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 "#######################################################################"
echo
tail -f /srv/bunkchat.txt

13
install.sh Executable file
View file

@ -0,0 +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

View file

@ -1,29 +0,0 @@
#!/bin/bash -e
# make username uppercase
username=$(echo "$USER" | tr '[:lower:]' '[:upper:]')
timezone="America/New_York"
declare 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
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
done

View file

@ -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

3
scry
View file

@ -1,3 +0,0 @@
#!/bin/sh -e
less /srv/bunkchat.txt