1
1
#! /bin/sh
2
2
3
3
# WordPress SSH Git CI Script
4
- # v1.0.0
4
+ # v1.0.1
5
5
6
+ # Set argument parameters on start
6
7
8
+ TOKENUSER=" NONE"
9
+ TOKEN=" NONE"
7
10
11
+ while getopts b:d:g:p:r:t:u: option; do
12
+ case " ${option} " in
13
+ b) BRANCH=${OPTARG} ;;
14
+ d) DEVBRANCH=${OPTARG} ;;
15
+ g) GITREPO=${OPTARG} ;;
16
+ p) GITPATH=${OPTARG} ;;
17
+ r) RUNTYPE=${OPTARG} ;;
18
+ t) TOKEN=${OPTARG} ;;
19
+ u) TOKENUSER=${OPTARG} ;;
20
+ * ) RUNTYPE=" push" ;;
21
+ esac
22
+ done
8
23
9
- set_defaults () {
10
- if [ -z " $GITPATH " ]; then
11
- print_error_msg " -p is empty. Please provide a path to git directory for repository & try again."
12
- exit 2
13
- fi
14
- if [ -z " $RUNTYPE " ]; then
15
- RUNTYPE=' push'
16
- fi
17
- }
24
+ # Remote connection methods
18
25
19
- is_stashes () {
20
- output=$( git stash list )
21
- case $1 in
22
- check) stashes=0;;
23
- esac
24
- case $output in
25
- * +" stash" * )
26
- stashes=1;;
27
- esac
26
+ add_devops_remote () {
27
+ git remote add devops " https://${TOKENUSER} :${TOKEN} @${GITREPO} " 2>&1
28
+ print_status_msg " Remote devops addded"
29
+ git remote -v 2>&1
28
30
}
29
31
30
32
rm_devops_remote () {
@@ -33,12 +35,6 @@ rm_devops_remote() {
33
35
git remote -v 2>&1
34
36
}
35
37
36
- add_devops_remote () {
37
- git remote add devops " https://${TOKENUSER} :${TOKEN} @${GITREPO} " 2>&1
38
- print_status_msg " Remote devops addded"
39
- git remote -v 2>&1
40
- }
41
-
42
38
add_or_remove_devops () {
43
39
output=$( git remote )
44
40
case $output in
@@ -59,6 +55,21 @@ add_or_remove_devops() {
59
55
esac
60
56
}
61
57
58
+ # Handling changes on WordPress server
59
+
60
+ # # Stashing changes
61
+
62
+ is_stashes () {
63
+ output=$( git stash list )
64
+ case $1 in
65
+ check) stashes=0;;
66
+ esac
67
+ case $output in
68
+ * +" stash" * )
69
+ stashes=1;;
70
+ esac
71
+ }
72
+
62
73
git_stash () {
63
74
is_stashes " check"
64
75
if [ " $stashes " -eq 1 ] ; then
@@ -76,11 +87,24 @@ git_stash() {
76
87
return
77
88
}
78
89
90
+ # # Commit changes
91
+
92
+ commit_git () {
93
+ git add -A . 2>&1
94
+ git commit -m " Server Side Commit
95
+
96
+ This was commited from SiteGround during release push" 2>&1
97
+ }
98
+
99
+ # # Merge changes
100
+
79
101
merge_from_devops () {
80
102
git merge " ${DEVBRANCH} " 2>&1
81
103
git branch -D " ${DEVBRANCH} " 2>&1
82
104
}
83
105
106
+ # Pull from repository methods
107
+
84
108
pull_from_devops () {
85
109
add_or_remove_devops " add"
86
110
git_stash " clear"
@@ -97,36 +121,28 @@ pull_from_devops() {
97
121
print_status_msg " pull_from_dev function was executed successfully."
98
122
}
99
123
124
+ # Push to repository methods
125
+
100
126
push_to_devops () {
101
- # code
102
127
pull_from_devops
103
128
add_or_remove_devops " add"
104
129
git push devops " $BRANCH " 2>&1
105
130
print_status_msg " push_to_dev function was executed successfully."
106
131
add_or_remove_devops " rm"
107
132
}
108
133
109
- print_status_msg () {
110
- printf " \033[32m%s\n" " $1 "
111
- }
112
-
113
- print_warning_msg () {
114
- printf " \033[33m%s\n" " $1 "
115
- }
116
-
117
- print_error_msg () {
118
- printf " \033[31m%s\n" " $1 "
119
- }
120
-
121
- commit_git () {
122
- git add -A . 2>&1
123
- git commit -m " Server Side Commit
134
+ # Utilities
124
135
125
- This was commited from SiteGround during release push" 2>&1
136
+ set_defaults () {
137
+ if [ -z " $GITPATH " ]; then
138
+ print_error_msg " -p is empty. Please provide a path to git directory for repository & try again."
139
+ exit 2
140
+ fi
141
+ if [ -z " $RUNTYPE " ]; then
142
+ RUNTYPE=' push'
143
+ fi
126
144
}
127
145
128
- TOKEN=" NONE"
129
- TOKENUSER=" NONE"
130
146
clean_repository () {
131
147
# code
132
148
if [ -n " $TOKEN " ] || [ " $TOKEN " != " NONE" ] || [ -n " $TOKENUSER " ] || [ " $TOKENUSER " != " NONE" ]; then
@@ -140,21 +156,24 @@ clean_repository() {
140
156
fi
141
157
}
142
158
159
+ # # Print messages in colored text
143
160
144
- while getopts b:d:g:p:r:t:u: option
145
- do
146
- case " ${option} "
147
- in
148
- b) BRANCH=${OPTARG} ;;
149
- d) DEVBRANCH=${OPTARG} ;;
150
- g) GITREPO=${OPTARG} ;;
151
- p) GITPATH=${OPTARG} ;;
152
- r) RUNTYPE=${OPTARG} ;;
153
- t) TOKEN=${OPTARG} ;;
154
- u) TOKENUSER=${OPTARG} ;;
155
- * ) RUNTYPE=" push" ;;
156
- esac
157
- done
161
+ # ## Greeen status message usually signifying success
162
+ print_status_msg () {
163
+ printf " \033[32m%s\n" " $1 "
164
+ }
165
+
166
+ # ## Yellow message usually signifying a warning message of some kind
167
+ print_warning_msg () {
168
+ printf " \033[33m%s\n" " $1 "
169
+ }
170
+
171
+ # ## Red message idicate that there was an error an action should be taken
172
+ print_error_msg () {
173
+ printf " \033[31m%s\n" " $1 "
174
+ }
175
+
176
+ # Methods and properties set, now start script logic models
158
177
159
178
set_defaults
160
179
0 commit comments