env_init
env_sync_data
git diff --cached
+ 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
}
local name="${1##*/}"
env_init
[ -z "$name" ] && usage
- [ -f "$ENVDIR/.git/refs/heads/$name" ] || error "environment '$name' not found"
branch="$(git branch | grep '^\* ' | awk '{print $2}')"
[ "$name" = "$branch" ] && error "cannot delete the currently selected environment"
git branch -D "$name"
env_switch() {
local name="${1##*/}"
[ -z "$name" ] && usage
- [ -f "$ENVDIR/.git/refs/heads/$name" ] || error "environment '$name' not found"
env_init
env_ask_sync
- git checkout "$name"
+ git checkout "$name" || error "environment '$name' not found"
env_link_config
}