add installer and prompt notifier for changed config
This commit is contained in:
parent
5ad81baf8b
commit
53f294f398
3 changed files with 45 additions and 1 deletions
|
@ -29,6 +29,14 @@ function awsenv_prompt {
|
||||||
[ -z "${pr}" ] || echo "${bracket_open} ${pr} ${bracket_close}"
|
[ -z "${pr}" ] || echo "${bracket_open} ${pr} ${bracket_close}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function config-git_prompt {
|
||||||
|
if [ -f ~/bin/config-git-status.sh ]; then
|
||||||
|
if ! ( ~/bin/config-git-status.sh ); then
|
||||||
|
echo "${bracket_open} %{$fg[red]%} ${bracket_close}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function build_git_prompt {
|
function build_git_prompt {
|
||||||
$( test "${NO_RIGHT}" = "true" ) && return
|
$( test "${NO_RIGHT}" = "true" ) && return
|
||||||
git branch >/dev/null 2>/dev/null || return
|
git branch >/dev/null 2>/dev/null || return
|
||||||
|
@ -78,9 +86,10 @@ local prompt_part_user="${bracket_open} %{$FG[040]%}%n%{$reset_color%}%{$FG[239]
|
||||||
local prompt_part_path="%{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}"
|
local prompt_part_path="%{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}"
|
||||||
local prompt_part_exit="%(?..${bracket_open} %{$fg[red]%}%?%{${reset_color}%} ${bracket_close})"
|
local prompt_part_exit="%(?..${bracket_open} %{$fg[red]%}%?%{${reset_color}%} ${bracket_close})"
|
||||||
local prompt_part_char='$(prompt_char)'
|
local prompt_part_char='$(prompt_char)'
|
||||||
|
local prompt_part_configgit='$(config-git_prompt)'
|
||||||
|
|
||||||
PROMPT="
|
PROMPT="
|
||||||
╭─ ${prompt_part_time}${prompt_part_user}$(awsenv_prompt)${prompt_part_exit} ${prompt_part_path}
|
╭─ ${prompt_part_time}${prompt_part_user}${prompt_part_configgit}$(awsenv_prompt)${prompt_part_exit} ${prompt_part_path}
|
||||||
╰─${prompt_part_char} "
|
╰─${prompt_part_char} "
|
||||||
|
|
||||||
RPROMPT="${git_info}"
|
RPROMPT="${git_info}"
|
||||||
|
|
7
bin/config-git-status.sh
Executable file
7
bin/config-git-status.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for i in $(ls -1 ${HOME}/.cfg); do
|
||||||
|
[ $(git --git-dir=$HOME/.cfg/$i/ --work-tree=$HOME status --porcelain | wc -l) -eq 0 ] || exit 1
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
28
bin/ensure-config.sh
Executable file
28
bin/ensure-config.sh
Executable file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PUB_CONFIG="git@github.com:Luzifer/cfg.git"
|
||||||
|
SEC_CONFIG="git@gitlab.com:luzifer/cfg.git"
|
||||||
|
|
||||||
|
if ! [ -d ${HOME}/.cfg/public ]; then
|
||||||
|
git clone --bare ${PUB_CONFIG} ${HOME}/.cfg/public
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ -d ${HOME}/.cfg/secret ]; then
|
||||||
|
git clone --bare ${SEC_CONFIG} ${HOME}/.cfg/secret
|
||||||
|
fi
|
||||||
|
|
||||||
|
function config {
|
||||||
|
git --git-dir=${HOME}/.cfg/${REPO}/ --work-tree=${HOME} $@
|
||||||
|
}
|
||||||
|
|
||||||
|
for REPO in public secret; do
|
||||||
|
config checkout
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
echo "Checked out config.";
|
||||||
|
else
|
||||||
|
echo "Backing up pre-existing dot files.";
|
||||||
|
config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} .config-backup/{}
|
||||||
|
fi;
|
||||||
|
config checkout
|
||||||
|
config config status.showUntrackedFiles no
|
||||||
|
done
|
Loading…
Reference in a new issue