diff options
| -rwxr-xr-x | load_config.sh | 15 | ||||
| -rwxr-xr-x | update_from_disk.sh | 11 |
2 files changed, 21 insertions, 5 deletions
diff --git a/load_config.sh b/load_config.sh index ec59828..0d947b9 100755 --- a/load_config.sh +++ b/load_config.sh @@ -14,6 +14,9 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" make_dir() { local dir="$1" + if [ -d "$dir" ]; then + return 1 + fi echo "mkdir -p $dir" if ! mkdir -p "$dir" 2>/dev/null; then echo "Failed - using sudo..." @@ -24,7 +27,17 @@ make_dir() { copy_file() { local src="$1" local dest="$2" - echo "cp -a $src $dest" + + if [ -f "$dest" ]; then + if diff "$src" "$dest" &> /dev/null; then + return 1 + else + echo "Updating $dest..." + fi + else + echo "$dest doesn't exist - copying..." + fi + if ! cp -a "$src" "$dest" 2>/dev/null; then echo "Failed - using sudo..." sudo cp -a "$src" "$dest" diff --git a/update_from_disk.sh b/update_from_disk.sh index c0e9d55..b113e31 100755 --- a/update_from_disk.sh +++ b/update_from_disk.sh @@ -15,10 +15,13 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" copy_file() { local src="$1" local dest="$2" - echo "cp -a $src $dest" - if ! cp -a "$src" "$dest" 2>/dev/null; then - echo "Failed - using sudo..." - sudo cp -a "$src" "$dest" + # update only if files are different + if ! diff "$src" "$dest" &>/dev/null; then + echo "Updating $dest..." + if ! cp -a "$src" "$dest" 2>/dev/null; then + echo "Failed - using sudo..." + sudo cp -a "$src" "$dest" + fi fi } |
