X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=scripts%2Fenv;h=84166ae5fe45ddeefb82f060fb8d3d1b898e81c9;hp=882b42a49ae44767ae78501dfa31145a48657c8e;hb=be2b61e4f1ec1e351733bebb7105629599034639;hpb=0e1337ea477cefd169447d66c036d518d1f53ee1 diff --git a/scripts/env b/scripts/env index 882b42a49a..84166ae5fe 100755 --- a/scripts/env +++ b/scripts/env @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASEDIR="$PWD" ENVDIR="$PWD/env" +export GREP_OPTIONS= usage() { cat < Delete an environment rename Rename the current environment diff Show differences between current state and environment - save Save your changes to the environment + save [message] Save your changes to the environment, optionally using + the given commit message revert Revert your changes since last save Options: @@ -96,19 +98,19 @@ env_do_reset() { 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 - env_link_config + git diff --cached --color=auto + env_link_config } env_save() { env_init - env_sync + env_sync "$@" env_link_config } @@ -138,7 +140,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" @@ -190,10 +194,12 @@ env_new() { 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" ] && { mkdir -p "$ENVDIR/files" - mv "$BASEDIR/files/*" "$ENVDIR/files/" 2>/dev/null + shopt -s dotglob + mv "$BASEDIR/files/"* "$ENVDIR/files/" 2>/dev/null + shopt -u dotglob rmdir "$BASEDIR/files" } env_sync