summaryrefslogtreecommitdiff
path: root/shell-scripts/kakup
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2023-10-06 23:10:55 +0200
committerMike Vink <mike1994vink@gmail.com>2023-10-06 23:10:55 +0200
commitcfaef26e8718916adcc68fbfb63b15f2389b2cd2 (patch)
tree3989af4514d31d0a5cb89e8b96d51210ad7bf152 /shell-scripts/kakup
parent654ec06ab6a885ea851c4cbf68d06a00b41b0e14 (diff)
move all the files
Diffstat (limited to 'shell-scripts/kakup')
-rwxr-xr-xshell-scripts/kakup100
1 files changed, 0 insertions, 100 deletions
diff --git a/shell-scripts/kakup b/shell-scripts/kakup
deleted file mode 100755
index af1a520..0000000
--- a/shell-scripts/kakup
+++ /dev/null
@@ -1,100 +0,0 @@
-#!@bash@/bin/bash
-session-or-client() {
- {
- project="$(cat -)"
- if [[ -z $project ]]; then
- return
- fi
- pushd $project
- name=${PWD#$HOME/}
- name=${name//\//-}
- name=${name#-}
- server=kaks@$name
- client=kakc@$name
- TMUX_ENV="-e KAK_SERVER=$server -e KAK_CLIENT=$client"
-
- tmux has-session -t $server || {
- tmux new $TMUX_ENV -d -s $server -n $server bash -c '[[ -f .envrc ]] && eval "$(direnv export bash)"; { kak -s '$name' -d & }; tmux wait -S '$name'; wait'
- tmux wait "$name"
- }
- if [[ -z $TMUX ]] || [ $SWITCH_TO_SESSION -eq 1 ]; then
- tmux has-session -t $client || tmux new $TMUX_ENV -d -s $client -n $client kak -c $name
- fi
- popd
- } </dev/stdin >debug 2>&1
- echo $client
-}
-
-search() {
- if tty -s
- then
- project="$(fd -d1 "." -t d $HOME $HOME/projects | fzf -1)"
- else
- output=$(mktemp -d /tmp/kakup.XXXXXXXX)/fifo
- mkfifo ${output}
- st -e bash -c "fd -d1 '.' -t d $HOME $HOME/projects | fzf -1 | tee ${output} >/dev/null 2>&1" &
- project="$(cat ${output})"
- rm -r $(dirname ${output})
- fi
-
- pushd $project >/dev/null 2>&1
- if grep 'bare = true' config >/dev/null 2>&1 ; then
- if tty -s
- then
- branch="$(git branch -a --format '%(refname)' | fzf -1)"
- else
- output=$(mktemp -d /tmp/kakup.XXXXXXXX)/fifo
- mkfifo ${output}
- st -e bash -c "git branch -a --format '%(refname)' | fzf -1 >${output}" &
- branch="$(cat ${output})"
- rm -r $(dirname ${output})
- fi
- echo "$branch" >debug 2>&1
- if [[ "$branch" == "refs/remotes/"* ]]; then
- git branch ${branch#refs/remotes/*/} -t $branch >debug 2>&1
- git worktree add ${branch#refs/remotes/*/} ${branch#refs/remotes/*/} >debug 2>&1
- branch="${branch#refs/remotes/*/}"
- elif [[ "$branch" == "refs/heads/"* ]]; then
- branch="${branch#refs/heads/}"
- git worktree add $branch $branch >debug 2>&1
- fi
- echo "$project/$branch"
- else
- echo "$project"
- fi
- popd >/dev/null 2>&1
-}
-
-NEW_TERM=0
-SWITCH_TO_SESSION=0
-while getopts "tfF" opt; do
- case "$opt" in
- h|\?) exit 0 ;;
- t) NEW_TERM=1 ;;
- f) client="$(search | session-or-client)" ;;
- F) SWITCH_TO_SESSION=1; client="$(search | session-or-client)" ;;
- esac
-done
-
-shift $((OPTIND - 1))
-
-[ -z "$client" ] && {
- case "${@}" in
- "") client="$(pwd | session-or-client)" ;;
- *) client="$(echo "${@}" | session-or-client)" ;;
- esac
-}
-
-[[ ! -z "$client" ]] && {
- if [ $NEW_TERM -eq 1 ]; then
- st -e tmux attach -t "$client"
- elif [[ -z $TMUX ]]; then
- tmux attach -t "$client"
- else
- if [ $SWITCH_TO_SESSION -eq 0 ]; then
- tmux new-window -n $client kak -c ${client##kakc@}
- else
- tmux switch -t $client
- fi
- fi
-}