Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit 6891aad

Browse files
fixed bug: release commit script undoing add because when there are no files matching an extension, the sync function ends up treating *.ext as a file and svn deleting that after the svn add.
1 parent 5ddfde3 commit 6891aad

File tree

1 file changed

+54
-37
lines changed

1 file changed

+54
-37
lines changed

cut-release.sh

Lines changed: 54 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,78 @@
11
#!/bin/bash
22

33
function help_and_exit() {
4-
echo "Usage: $0 [-go] [-verbose]"
4+
echo "Usage: $0 [-go] [-verbose] [-force]"
55
echo
66
echo "Moves minified CSS and JS to distribution directories and"
77
echo "creates a branch in SVN."
88
echo
99
echo " -go: Run commands instead of just echoing them."
1010
echo " -verbose: More verbose logging."
11+
echo " -force: Ignore sanity checks for testing."
12+
echo " Incompatible with -go."
1113
exit "$1"
1214
}
1315

1416
# 1 for verbose logging
1517
export VERBOSE="0"
1618
# 1 if commands that have side-effects should actually be run instead of logged
1719
export EFFECT="0"
20+
# 1 to not exit on panic.
21+
export NO_PANIC="0"
1822

1923
function panic() {
20-
echo "$*"
21-
exit -1
24+
echo "PANIC: $*"
25+
26+
if ! (( $NO_PANIC )); then
27+
exit -1
28+
fi
2229
}
2330

2431
function command() {
2532
if (( $VERBOSE )) || ! (( $EFFECT )); then
26-
echo '$' "$*"
33+
echo '$' "$*"
2734
fi
2835
if (( $EFFECT )); then
29-
"$@" || panic "command failed: $@"
36+
"$@" || panic "command failed: $@"
3037
fi
3138
}
3239

3340
function mime_for_file() {
3441
local path="$1"
3542
case "${path##*.}" in
36-
js) echo -n "text/javascript;charset=UTF-8";;
37-
css) echo -n "text/css;charset=UTF-8";;
38-
html) echo -n "text/html;charset=UTF-8";;
39-
*) panic "unrecognized extension for $path";;
43+
js) echo -n "text/javascript;charset=UTF-8";;
44+
css) echo -n "text/css;charset=UTF-8";;
45+
html) echo -n "text/html;charset=UTF-8";;
46+
*) panic "unrecognized extension for $path";;
4047
esac
4148
}
4249

4350
for var in "$@"; do
4451
case "$var" in
4552
-verbose)
46-
VERBOSE="1"
47-
;;
53+
VERBOSE="1"
54+
;;
4855
-go)
49-
EFFECT="1"
50-
;;
56+
EFFECT="1"
57+
;;
58+
-force)
59+
NO_PANIC="1"
60+
;;
5161
-h)
52-
help_and_exit 0
53-
;;
62+
help_and_exit 0
63+
;;
5464
*)
55-
echo "Unrecognized variable $var"
56-
help_and_exit -1
57-
;;
65+
echo "Unrecognized variable $var"
66+
help_and_exit -1
67+
;;
5868
esac
5969
done
6070

71+
if (( $NO_PANIC )) && (( $EFFECT )); then
72+
NO_PANIC="0"
73+
panic "-force is incompatible with -go"
74+
fi
75+
6176
# Find svn root
6277
export VERSION_BASE="$(
6378
pushd "$(dirname "$0")/.." > /dev/null; pwd; popd > /dev/null)"
@@ -118,33 +133,35 @@ function sync() {
118133
local src_file
119134
local dest_file
120135
for ext in $exts; do
121-
for src_file in "$src_dir"/*."$ext"; do
122-
dest_file="$dest_dir"/"$(basename "$src_file")"
123-
if ! [ -e "$dest_file" ] || diff -q "$src_file" "$dest_file"; then
124-
"$action" "$src_file" "$dest_file"
125-
fi
126-
done
127-
for dest_file in "$dest_dir"/*."$ext"; do
128-
src_file="$src_dir"/"$(basename "$dest_file")"
129-
if ! [ -e "$src_file" ]; then
130-
"$action" "$src_file" "$dest_file"
131-
fi
132-
done
136+
for src_file in "$src_dir"/*."$ext"; do
137+
if [ "$src_file" == "$src_dir/\*.$ext" ]; then continue; fi
138+
dest_file="$dest_dir"/"$(basename "$src_file")"
139+
if ! [ -e "$dest_file" ] || diff -q "$src_file" "$dest_file"; then
140+
"$action" "$src_file" "$dest_file"
141+
fi
142+
done
143+
for dest_file in "$dest_dir"/*."$ext"; do
144+
if [ "$dest_file" == "$dest_dir/\*.$ext" ]; then continue; fi
145+
src_file="$src_dir"/"$(basename "$dest_file")"
146+
if ! [ -e "$src_file" ]; then
147+
"$action" "$src_file" "$dest_file"
148+
fi
149+
done
133150
done
134151
}
135152

136153
function svn_sync() {
137154
local src_file="$1"
138155
local dest_file="$2"
139156
if ! [ -e "$src_file" ]; then
140-
command svn delete "$dest_file"
157+
command svn delete "$dest_file"
141158
else
142-
command cp "$src_file" "$dest_file"
143-
if ! [ -e "$dest_file" ]; then
144-
command svn add "$dest_file"
145-
command svn propset svn:mime-type "$(mime_for_file "$src_file")" \
146-
"$dest_file"
147-
fi
159+
command cp "$src_file" "$dest_file"
160+
if ! [ -e "$dest_file" ]; then
161+
command svn add "$dest_file"
162+
command svn propset svn:mime-type "$(mime_for_file "$src_file")" \
163+
"$dest_file"
164+
fi
148165
fi
149166
}
150167

0 commit comments

Comments
 (0)