X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/a0e3e53cfe38a29e91e319830f91e4e55bb81e38..d4d4e1aa21f0a80b409ee93f38e8f9beb011d43c:/scripts/env diff --git a/scripts/env b/scripts/env index afa6d9fff..80e08ec4a 100755 --- a/scripts/env +++ b/scripts/env @@ -62,8 +62,8 @@ env_init() { git init && touch .config && mkdir files && - git-add . && - git-commit -q -m "Initial import" + git add . && + git commit -q -m "Initial import" } || { rm -rf .git error "Failed to initialize the environment directory" @@ -72,14 +72,14 @@ env_init() { env_sync_data() { [ \! -L "$BASEDIR/.config" -a -f "$BASEDIR/.config" ] && mv "$BASEDIR/.config" "$ENVDIR" - git-add . - git-add -u + git add . + git add -u } env_sync() { local STR="$1" env_sync_data - git-commit -m "${STR:-Update} at $(date)" + git commit -m "${STR:-Update} at $(date)" } env_link_config() { @@ -90,19 +90,20 @@ env_link_config() { } env_do_reset() { - git-reset --hard HEAD - git-clean -d -f + git reset --hard HEAD + git clean -d -f } env_list() { env_init - git-branch | grep -vE '^. master$' + git branch | grep -vE '^. master$' } env_diff() { env_init env_sync_data - git-diff --cached + git diff --cached + env_link_config } env_save() { @@ -118,12 +119,12 @@ env_revert() { } 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 } @@ -137,7 +138,9 @@ env_clear() { 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" @@ -148,28 +151,27 @@ env_clear() { env_delete() { 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" + 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 } env_rename() { local NAME="${1##*/}" env_init - git-branch -m "$NAME" + git branch -m "$NAME" } env_new() { @@ -180,7 +182,7 @@ env_new() { [ -z "$NAME" ] && usage env_init 1 - branch="$(git-branch | grep '^\* ' | awk '{print $2}')" + branch="$(git branch | grep '^\* ' | awk '{print $2}')" if [ -n "$branch" -a "$branch" != "master" ]; then env_ask_sync if ask_bool 0 "Do you want to clone the current environment?"; then @@ -188,11 +190,14 @@ env_new() { fi rm -f "$BASEDIR/.config" "$BASEDIR/files" fi - git-checkout -b "$1" "$from" + 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