-
Notifications
You must be signed in to change notification settings - Fork 0
/
git-flux-rc
83 lines (67 loc) · 1.88 KB
/
git-flux-rc
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env bash
cmd_usage_default() {
printf "%s" "start|finish|review <name> [-h]"
}
cmd_usage_start() {
printf "%s" "start <name> [-h]"
}
cmd_usage_finish() {
printf "%s" "finish <name> [-h]"
}
cmd_usage_review() {
printf "%s" "review <name> [-h]"
}
cmd_long_usage_default() {
printf "%s" "\
$(f_heading "rc" | f_fg_green)
handle lifecycle of release-candidates.
$(f_subheading "available actions")
$(cmd_long_usage_start)
$(cmd_long_usage_finish)
$(cmd_long_usage_review)
"
}
cmd_long_usage_start() {
printf "%s" "\
$(f_code_definition \
"$(cmd_usage_start)" \
"start a release-candidate; create a local branch and push it to the remote.
the branch name will be composed of the pre-configured release-candidate prefix and the passed $(f_code "name").
it is advised that $(f_code "name") will be the next version, e.g. '1.1.0'.")
"
}
cmd_long_usage_finish() {
printf "%s" "\
$(f_code_definition \
"$(cmd_usage_finish)" \
"finish an existing release-candidate; delete its local and remote branches, for good.")
"
}
cmd_long_usage_review() {
printf "%s" "\
$(f_code_definition \
"$(cmd_usage_review)" \
"open a pull request from the release-candidate branch to its base branch, i.e. the integration branch, for review in github.")
"
}
cmd_start() {
local name
require_args "$1"
name="$1"
io_log; create_branch_from_base "$(git_config_get "prefix.rc")$name" "$(git_config_get "branch.integration")"
io_log; io_log_ok "release candidate '$name' is created. congrats!"; io_log
}
cmd_finish() {
local name
require_args "$1"
name="$1"
io_log; destroy_branch_from_base "$(git_config_get "prefix.rc")$name"
io_log; io_log_ok "release candidate '$name' is finished. goodbye!"; io_log
}
cmd_review() {
local name
require_args "$1"
name="$1"
io_log; review_branch_from_base "$(git_config_get "prefix.rc")$name"
io_log; io_log_ok "release candidate '$name' is ready for review."; io_log
}