24 lines
		
	
	
		
			566 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			24 lines
		
	
	
		
			566 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/usr/bin/env bash
 | |
| 
 | |
| create_session() {
 | |
|     tmux new -ds "$1"
 | |
| 
 | |
|     tmux send-keys -t "$1" 'nvim' Enter
 | |
| }
 | |
| 
 | |
| # Use Git repo root as dir if we're in one
 | |
| dir=`git rev-parse --show-toplevel 2> /dev/null || pwd`
 | |
| dir_hash=`echo "$dir" | shasum | grep -o '^[^ ]\+'`
 | |
| dir_name=`basename "$dir" | sed 's/[^a-zA-Z0-9]/_/g'`
 | |
| session_name="${dir_name}-${dir_hash}"
 | |
| 
 | |
| tmux has -t "$session_name" 2> /dev/null || \
 | |
|     create_session "$session_name"
 | |
| 
 | |
| # Attach to the session
 | |
| if [ -n "$TMUX" ]; then
 | |
|     tmux switch-client -t "$session_name"
 | |
| else
 | |
|     tmux attach -t "$session_name"
 | |
| fi
 |