env_list() {
env_init
- git branch | grep -vE '^. master$'
+ git branch --color | grep -vE '^. master$'
}
env_diff() {
env_init
env_sync_data
- git diff --cached
+ git diff --cached --color
+ env_link_config
}
env_save() {
}
env_ask_sync() {
+ env_sync_data
LINES="$(env_diff | wc -l)" # implies env_init
[ "$LINES" -gt 0 ] && {
if ask_bool 1 "Do you want to save your changes"; then
env_sync
else
- env_sync_data
env_do_reset
fi
}
env_sync_data
if ask_bool 1 "Do you want to keep your current config and files"; then
mkdir -p "$BASEDIR/files"
- cp -a "$ENVDIR/files/*" "$BASEDIR/files" 2>/dev/null >/dev/null
+ shopt -s dotglob
+ cp -a "$ENVDIR/files/"* "$BASEDIR/files" 2>/dev/null >/dev/null
+ shopt -u dotglob
cp "$ENVDIR/.config" "$BASEDIR/"
else
rm -rf "$BASEDIR/files" "$BASEDIR/.config"
fi
git checkout -b "$1" "$from"
if [ -f "$BASEDIR/.config" -o -d "$BASEDIR/files" ]; then
- if ask_bool 1 "Do you want to keep your current config and files?"; then
+ if ask_bool 1 "Do you want to start your configuration repository with the current configuration?"; then
[ -d "$BASEDIR/files" -a \! -L "$BASEDIR/files" ] && {
- mv "$BASEDIR/files/"* "$ENVDIR/" 2>/dev/null
+ mkdir -p "$ENVDIR/files"
+ shopt -s dotglob
+ mv "$BASEDIR/files/"* "$ENVDIR/files/" 2>/dev/null
+ shopt -u dotglob
rmdir "$BASEDIR/files"
}
env_sync