From 125702a85716db26870d0dc5faa03ed97efeec8d Mon Sep 17 00:00:00 2001 From: Mike Stenhouse Date: Thu, 16 Aug 2012 14:48:43 +0100 Subject: [PATCH 1/3] Clone git-aware-prompt into its own directory in .bash so other scripts can be stored in there too. Keeps the home directory tidy. ;) --- README.md | 11 ++++++----- main.sh | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 761e1a1..b9a49ca 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,15 @@ If you `cd` to a Git working directory, you will see the current Git branch name ## Installation Clone the project to a `.bash` folder in your home directory: - - git clone git://github.com/jimeh/git-aware-prompt.git ~/.bash + + mkdir ~/.bash + cd ~/.bash + git clone git://github.com/mikesten/git-aware-prompt.git Edit your `~/.profile` or `~/.bash_profile` and add the following to the top: - export DOTBASH=~/.bash - source $DOTBASH/main.sh - export PS1="\u@\h \w\[$txtcyn\]\$git_branch\[$txtrst\]\$ " + export GITAWAREPROMPT=~/.bash/git-aware-prompt + source $GITAWAREPROMPT/main.sh Optionally, if you want a nice pretty prompt when using `sudo -s`, also add this line: diff --git a/main.sh b/main.sh index dfbfdf7..ce85f74 100644 --- a/main.sh +++ b/main.sh @@ -1,2 +1,2 @@ -source $DOTBASH/colors.sh -source $DOTBASH/prompt.sh \ No newline at end of file +source $GITAWAREPROMPT/colors.sh +source $GITAWAREPROMPT/prompt.sh \ No newline at end of file From c0933f894cc37642a893dbbda4c01f2f132ddef5 Mon Sep 17 00:00:00 2001 From: Mike Stenhouse Date: Thu, 16 Aug 2012 14:49:10 +0100 Subject: [PATCH 2/3] Add the branch's dirty state to the prompt. Based on: http://bytebaker.com/2012/01/09/show-git-information-in-your-prompt/ --- README.md | 2 ++ prompt.sh | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b9a49ca..91064a6 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ Edit your `~/.profile` or `~/.bash_profile` and add the following to the top: export GITAWAREPROMPT=~/.bash/git-aware-prompt source $GITAWAREPROMPT/main.sh + export PS1="\u@\h \w\[$txtcyn\]\$git_branch\[$txtylw\]\$git_dirty\[$txtrst\]\$ " + Optionally, if you want a nice pretty prompt when using `sudo -s`, also add this line: diff --git a/prompt.sh b/prompt.sh index 6664936..4a0b062 100644 --- a/prompt.sh +++ b/prompt.sh @@ -16,11 +16,19 @@ function find_git_branch { done git_branch='' } +function find_git_dirty { + st=$(git status 2>/dev/null | tail -n 1) + if [[ $st != "nothing to commit (working directory clean)" ]] + git_dirty='' + then + git_dirty='*' + fi +} -PROMPT_COMMAND="find_git_branch; $PROMPT_COMMAND" +PROMPT_COMMAND="find_git_branch; find_git_dirty; $PROMPT_COMMAND" -# Default Git enabled prompt -# export PS1="\u@\h \w\[$txtcyn\]\$git_branch\[$txtrst\]\$ " +# Default Git enabled prompt with dirty state +# export PS1="\u@\h \w\[$txtcyn\]\$git_branch\[$txtylw\]\$git_dirty\[$txtrst\]\$ " # Default Git enabled root prompt (for use with "sudo -s") # export SUDO_PS1="\[$bakred\]\u@\h\[$txtrst\] \w\$ " \ No newline at end of file From 04b91b50f29d1b262cf592615ecdc1d9590d542b Mon Sep 17 00:00:00 2001 From: Mike Stenhouse Date: Thu, 16 Aug 2012 15:28:05 +0100 Subject: [PATCH 3/3] Shouldn't output anything if we're not in a repo. --- prompt.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/prompt.sh b/prompt.sh index 4a0b062..5385754 100644 --- a/prompt.sh +++ b/prompt.sh @@ -18,13 +18,14 @@ function find_git_branch { } function find_git_dirty { st=$(git status 2>/dev/null | tail -n 1) - if [[ $st != "nothing to commit (working directory clean)" ]] + if [[ $st == "" ]]; then git_dirty='' - then + elif [[ $st == "nothing to commit (working directory clean)" ]]; then + git_dirty='' + else git_dirty='*' fi } - PROMPT_COMMAND="find_git_branch; find_git_dirty; $PROMPT_COMMAND" # Default Git enabled prompt with dirty state