diff --git a/.bin/tmux-projectinator b/.bin/tmux-projectinator index eea7d77..3154999 100755 --- a/.bin/tmux-projectinator +++ b/.bin/tmux-projectinator @@ -8,9 +8,9 @@ OPEN_MODE="new_pane" CACHE_FILE=~/.cache/project_list debug () { - if [ "$VERBOSE" = true ]; then - echo $1 - fi + if [ "$VERBOSE" = true ]; then + echo $1 + fi } spinner() { @@ -24,49 +24,49 @@ spinner() { } open_local () { - # To avoid using pre-entered string in current buffer - tmux send-keys C-c - tmux send-keys "cd $PROJECT_PATH" Enter + # To avoid using pre-entered string in current buffer + tmux send-keys C-c + tmux send-keys "cd $PROJECT_PATH" Enter - # Close tmux popup if any - tmux display-popup -C + # Close tmux popup if any + tmux display-popup -C } open_new_pane () { - tmux has-session -t $SESSION_NAME 2>/dev/null - if [ $? != 0 ]; then - debug "Session $SESSION_NAME missing, creating it." - tmux new-session -s $SESSION_NAME -d -n $PROJECT_NAME -c $PROJECT_PATH - fi + tmux has-session -t $SESSION_NAME 2>/dev/null + if [ $? != 0 ]; then + debug "Session $SESSION_NAME missing, creating it." + tmux new-session -s $SESSION_NAME -d -n $PROJECT_NAME -c $PROJECT_PATH + fi - tmux has-session -t $SESSION_NAME:$PROJECT_NAME 2>/dev/null - if [ $? != 0 ]; then - debug "Window $PROJECT_NAME in $SESSION_NAME not found, creating it." - tmux new-window -t $SESSION_NAME -n $PROJECT_NAME -d -c $PROJECT_PATH - fi + tmux has-session -t $SESSION_NAME:$PROJECT_NAME 2>/dev/null + if [ $? != 0 ]; then + debug "Window $PROJECT_NAME in $SESSION_NAME not found, creating it." + tmux new-window -t $SESSION_NAME -n $PROJECT_NAME -d -c $PROJECT_PATH + fi - tmux switch-client -t $SESSION_NAME:$PROJECT_NAME + tmux switch-client -t $SESSION_NAME:$PROJECT_NAME - # Close tmux popup if any - tmux display-popup -C + # Close tmux popup if any + tmux display-popup -C } update_project_list_cache() { PROJECT_LIST_UPDATE=$(find ~/* -name .git -type d -not -path "~/.*" -prune 2>/dev/null | sed 's/\/.git/\n/g' | sed "s/$(echo $HOME | sed 's/\//\\\//g')//" | cut -d'/' -f2-) - + echo $PROJECT_LIST_UPDATE > $CACHE_FILE } while getopts "lv" option; do - debug "Reading option $option" - case $option in - l) - OPEN_MODE="local" - ;; - v) - VERBOSE=true - ;; - esac + debug "Reading option $option" + case $option in + l) + OPEN_MODE="local" + ;; + v) + VERBOSE=true + ;; + esac done declare -A CUSTOM_SESSIONS @@ -76,11 +76,11 @@ spinner & spinner_pid=$! if [ ! -f "$CACHE_FILE" ]; then - debug "Start synchronous project list cache update" - update_project_list_cache + debug "Start synchronous project list cache update" + update_project_list_cache else - debug "Start asynchronous project list cache update" - update_project_list_cache & + debug "Start asynchronous project list cache update" + update_project_list_cache & fi PROJECT_LIST=$(cat $CACHE_FILE) @@ -106,10 +106,10 @@ debug "Project path is $PROJECT_PATH" debug "Opening in $OPEN_MODE" case $OPEN_MODE in - "new_pane") - open_new_pane - ;; - "local") - open_local - ;; + "new_pane") + open_new_pane + ;; + "local") + open_local + ;; esac