Skip to content

Commit 0e86d48

Browse files
committed
Use command line args to control update behaviour
1 parent 6c52eca commit 0e86d48

File tree

1 file changed

+59
-9
lines changed

1 file changed

+59
-9
lines changed

build_usbkey.sh

+59-9
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,75 @@ set -e
44

55
dist_dir=$(cd "`dirname "$0"`" && pwd)
66
volumes_dir=/Volumes
7-
blank_volume_name="USB DISK"
8-
target_volume_name="NEO4J"
7+
volume_name="NEO4J"
8+
blank_volume_name=
99

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=
1212

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
1450
set -x
15-
diskutil renameVolume "$blank_volume" "$target_volume_name"
51+
diskutil renameVolume "$blank_volume" "$volume_name"
1652
sleep 5
1753
set +x
1854
fi
55+
1956
if ! [ -d "$target_volume" ]; then
20-
echo "Can't find \"$target_volume\"" >&2
57+
echo "Can't find '$target_volume'" >&2
2158
exit 1
2259
fi
60+
2361
set -x
2462
mdutil -i off "$target_volume"
2563
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
2878
diskutil eject "$target_volume"

0 commit comments

Comments
 (0)