equal
deleted
inserted
replaced
|
1 #!/bin/zsh |
|
2 set -e |
|
3 |
|
4 zmodload zsh/zutil |
|
5 |
|
6 script_path="${0}" |
|
7 script_root="$(dirname "${script_path}")" |
|
8 version_file="$script_root/version_codes.json" |
|
9 |
|
10 usage() { |
|
11 echo "update_version_codes.sh [-l|--latest] <version_name> <version_code>" |
|
12 } |
|
13 |
|
14 add_code_mapping() { |
|
15 local name="$1" |
|
16 local code="$2" |
|
17 local version_file="$3" |
|
18 local tmp=$(mktemp) |
|
19 jq --arg param_version_name "$name" \ |
|
20 --arg param_version_code "$code" \ |
|
21 '.version_codes[$param_version_name] = $param_version_code' \ |
|
22 "$version_file" > "$tmp" |
|
23 mv "$tmp" "$version_file" |
|
24 } |
|
25 |
|
26 add_code_mapping_update_latest() { |
|
27 local name="$1" |
|
28 local code="$2" |
|
29 local version_file="$3" |
|
30 local tmp=$(mktemp) |
|
31 jq --arg param_version_name "$name" \ |
|
32 --arg param_version_code "$code" \ |
|
33 '.latest = $param_version_name | .version_codes[$param_version_name] = $param_version_code' \ |
|
34 "$version_file" > "$tmp" |
|
35 mv "$tmp" "$version_file" |
|
36 } |
|
37 |
|
38 zparseopts -D -F -K -- \ |
|
39 {h,-help}=show_help \ |
|
40 {l,-latest}=set_latest || { |
|
41 usage && return 1 |
|
42 } |
|
43 |
|
44 [[ -z "$show_help" ]] || { usage && return } |
|
45 version_name="$1" |
|
46 version_code="$2" |
|
47 |
|
48 [[ -z "$version_name" || -z "$version_code" ]] && { usage && return 1 } |
|
49 |
|
50 if [[ -n "$set_latest" ]] ; then |
|
51 add_code_mapping_update_latest "$version_name" "$version_code" "$version_file" |
|
52 else |
|
53 add_code_mapping "$version_name" "$version_code" "$version_file" |
|
54 fi |