-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathreplace_logo.sh
More file actions
executable file
·65 lines (54 loc) · 2.19 KB
/
Copy pathreplace_logo.sh
File metadata and controls
executable file
·65 lines (54 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env bash
set -euo pipefail
# Usage hint
usage() {
cat <<EOF
Usage: $(basename "$0") <header|footer> <source-file>
Overwrites one of the Data Portal logo files with <source-file>.
Targets:
header src/assets/images/logo.svg (header logo, 301x119 by default)
footer src/assets/images/logo-notext.png (footer logo, 50x63 by default)
EOF
exit 1
}
if [[ $# -ne 2 ]]; then
usage
fi
choice=$1
src=$2
# https://stackoverflow.com/a/246128/2148998 -- apparently this is the safest way to get the script directory
script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
portal_dir="$script_dir/lib/candig-data-portal/candig-data-portal"
# Figure out what to overwrite
extension="${src##*.}"
case "$choice" in
header) dest="$portal_dir/src/assets/images/logo.$extension" ;;
footer) dest="$portal_dir/src/assets/images/logo-notext.$extension" ;;
-h|--help) usage ;;
*) echo "Error: unknown target '$choice'" >&2; usage ;;
esac
# Error handling
if [[ ! -f "$src" ]]; then
echo "Error: source file '$src' does not exist" >&2
exit 1
fi
# Copy and echo
cp -- "$src" "$dest"
echo "Replaced $dest with $src"
# Make sure the file type of the input is used in the output
# Since sed works differently between the GNU and BSD versions, we'll execute different things depending
if sed --version 2>/dev/null | grep -q GNU; then
case "$choice" in
header) grep -rl 'images\/logo\.[A-Za-z]\+' $portal_dir | xargs sed -i -e 's/images\/logo\.[a-zA-Z]\+/images\/logo.'$extension'/g' ;;
footer) grep -rl 'images\/logo-notext\.[A-Za-z]\+' $portal_dir | xargs sed -i -e 's/images\/logo-notext\.[a-zA-Z]\+/images\/logo-notext.'$extension'/g' ;;
esac
else
case "$choice" in
header) grep -Erl 'images\/logo\.[A-Za-z]+' $portal_dir | xargs sed -i '' -E 's/images\/logo\.[a-zA-Z]+/images\/logo.'$extension'/g' ;;
footer) grep -Erl 'images\/logo-notext\.[A-Za-z]+' $portal_dir | xargs sed -i '' -E 's/images\/logo-notext\.[a-zA-Z]+/images\/logo-notext.'$extension'/g' ;;
esac
fi
# If data-portal is currently running, recompose it
if docker ps | grep "candig-data-portal"; then
(cd "$script_dir" && make recompose-candig-data-portal)
fi