├── LICENSE ├── README.md └── prompt.sh /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Zohair Shaikh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # git_aware 2 | Make your command line interactive to the git repositories and keep you informed with the current branch on the project 3 | 4 | 5 | # Configuration 6 | For Bash - 7 | Add ```PROMPT_COMMAND+="source "``` in your bash file. ```bashrc``` or ```bash_profile``` respectively. 8 | 9 | For ZSH - 10 | Add ``` precmd() { eval "$PROMPT_COMMAND" } PROMPT_COMMAND="source " ``` in your zshrc file. 11 | 12 | This command basically updates your PROMPT_COMMAND variable and will run the provided script on every command you run in the terminal. -------------------------------------------------------------------------------- /prompt.sh: -------------------------------------------------------------------------------- 1 | GIT_GREEN="$(tput setaf 2)" 2 | FOLDER_CYAN="$(tput setaf 46)" 3 | NORMAL_YELLOW="$(tput setaf 3)" 4 | RESET="$(tput sgr0)" 5 | 6 | 7 | if [ -d ".git" ] 8 | then 9 | cd .git/ 10 | branch=$( cat HEAD || true ) 11 | j=0 12 | for i in $(echo $branch | tr "/" "\n") 13 | do 14 | ((j++)) 15 | if [ "$j" = 4 ] 16 | then 17 | if [ -e logs/refs/remotes/origin/$i ] 18 | then 19 | export PS1='\[${NORMAL_YELLOW}\]$(whoami) • \[${FOLDER_CYAN}\]/${PWD##*/}/ → \[${GIT_GREEN}\]$i ✓ \[${RESET}$\] ' 20 | else 21 | export PS1='\[${NORMAL_YELLOW}\]$(whoami) • \[${FOLDER_CYAN}\]/${PWD##*/}/ → \[${GIT_GREEN}\]$i ✗ \[${RESET}$\] ' 22 | fi 23 | 24 | 25 | fi; 26 | done; 27 | cd .. 28 | else 29 | export PS1='\[${NORMAL_YELLOW}\]$(whoami) • \[${FOLDER_CYAN}\]/${PWD##*/}/\[${RESET}$\] ' 30 | fi; 31 | --------------------------------------------------------------------------------