diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2023-10-06 23:10:55 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2023-10-06 23:10:55 +0200 |
| commit | cfaef26e8718916adcc68fbfb63b15f2389b2cd2 (patch) | |
| tree | 3989af4514d31d0a5cb89e8b96d51210ad7bf152 /shell-scripts/kakup | |
| parent | 654ec06ab6a885ea851c4cbf68d06a00b41b0e14 (diff) | |
move all the files
Diffstat (limited to 'shell-scripts/kakup')
| -rwxr-xr-x | shell-scripts/kakup | 100 |
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 -} |
