|
4 | 4 |
|
5 | 5 | dist_dir=$(cd "`dirname "$0"`" && pwd)
|
6 | 6 | volumes_dir=/Volumes
|
7 |
| -blank_volume_name="USB DISK" |
8 |
| -target_volume_name="NEO4J" |
| 7 | +volume_name="NEO4J" |
| 8 | +blank_volume_name= |
9 | 9 |
|
10 |
| -blank_volume="$volumes_dir/$blank_volume_name" |
11 |
| -target_volume="$volumes_dir/$target_volume_name" |
| 10 | +rsync_args="-avP --size-only --exclude '.*'" |
| 11 | +clean= |
12 | 12 |
|
13 |
| -if [ -d "$blank_volume" ]; then |
| 13 | +usage() { |
| 14 | + echo "$0: [-f][-v name][-r name]" |
| 15 | + echo " -c Clean destination (remove MacOS related files)" |
| 16 | + echo " -f Force destination to match source (will delete extra files)" |
| 17 | + echo " -v name Name of volume to write to (default 'NEO4J')" |
| 18 | + echo " -r name Volume with this name will be renamed first" |
| 19 | +} |
| 20 | + |
| 21 | +while getopts ":cfhr:v:" opt; do |
| 22 | + case $opt in |
| 23 | + c) clean=1;; |
| 24 | + f) rsync_args="$rsync_args --delete --delete-excluded"; clean=1;; |
| 25 | + h) usage; exit 0;; |
| 26 | + v) volume_name=$OPTARG;; |
| 27 | + r) blank_volume_name=$OPTARG;; |
| 28 | + :) echo "Missing argument for: -$OPTARG" >&2; usage >&2; exit 1;; |
| 29 | + \?) echo "Invalid option: -$OPTARG" >&2; usage >&2; exit 1;; |
| 30 | + esac |
| 31 | +done |
| 32 | + |
| 33 | +if [ -z "$volume_name" ]; then |
| 34 | + echo "Invalid volume_name" >&2 |
| 35 | + exit 1 |
| 36 | +fi |
| 37 | + |
| 38 | +target_volume="$volumes_dir/$volume_name" |
| 39 | + |
| 40 | +if [ -n "$blank_volume_name" ]; then |
| 41 | + if [ -d "$target_volume" ]; then |
| 42 | + echo "Volume '$volume_name' already exists!" >&2 |
| 43 | + exit 1 |
| 44 | + fi |
| 45 | + blank_volume="$volumes_dir/$blank_volume_name" |
| 46 | + if ! [ -d "$blank_volume" ]; then |
| 47 | + echo "Volume '$blank_volume_name' not found!" >&2 |
| 48 | + exit 1 |
| 49 | + fi |
14 | 50 | set -x
|
15 |
| - diskutil renameVolume "$blank_volume" "$target_volume_name" |
| 51 | + diskutil renameVolume "$blank_volume" "$volume_name" |
16 | 52 | sleep 5
|
17 | 53 | set +x
|
18 | 54 | fi
|
| 55 | + |
19 | 56 | if ! [ -d "$target_volume" ]; then
|
20 |
| - echo "Can't find \"$target_volume\"" >&2 |
| 57 | + echo "Can't find '$target_volume'" >&2 |
21 | 58 | exit 1
|
22 | 59 | fi
|
| 60 | + |
23 | 61 | set -x
|
24 | 62 | mdutil -i off "$target_volume"
|
25 | 63 | sleep 3
|
26 |
| -rsync -avP --size-only --exclude '.*' --delete --delete-excluded "$dist_dir/USBKEY/" "$target_volume/" |
27 |
| -find "$target_volume" -name '.*' -delete |
| 64 | +rsync ${rsync_args} "$dist_dir/USBKEY/" "$target_volume/" |
| 65 | +set +x |
| 66 | + |
| 67 | +if [ -n "$clean" ]; then |
| 68 | + set -x |
| 69 | + find "$target_volume" -name '.DS_Store' -delete |
| 70 | + rm -rf "$target_volume/.Trashes" |
| 71 | + rm -rf "$target_volume/.fseventsd" |
| 72 | + rm -rf "$target_volume/._.Trashes" |
| 73 | + rm -rf "$target_volume/.Spotlight-V100" |
| 74 | + set +x |
| 75 | +fi |
| 76 | + |
| 77 | +set -x |
28 | 78 | diskutil eject "$target_volume"
|
0 commit comments