Skip to content

Commit 062fb84

Browse files
fix: Added exit codes
1 parent d1c3e89 commit 062fb84

2 files changed

Lines changed: 31 additions & 19 deletions

File tree

git/git.go

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ import (
1313
"github.com/google/go-github/v67/github"
1414
)
1515

16+
const (
17+
exitOk int = 0
18+
exitError int = 1
19+
exitNoNewFiles int = 10
20+
)
21+
1622
func getGitPorcelain(dirPath string) (git.Status, error) {
1723
repo, err := git.PlainOpen(dirPath)
1824
if err != nil {
@@ -183,19 +189,19 @@ func UploadToRepo(
183189
message string,
184190
createEmpty *bool,
185191
allowEmpty *bool,
186-
) (*github.Reference, *github.Response, error) {
192+
) (*github.Reference, *github.Response, error, int) {
187193

188194
// Get the current currentCommit
189195
currentCommit, err := getCurrentCommit(ctx, client, repo, baseBranch)
190196
if err != nil {
191-
return nil, nil, err
197+
return nil, nil, err, exitError
192198
}
193199

194200
fileStatuses, err := getGitPorcelain(path)
195201

196202
addedFiles, updatedFiles, deletedFiles, err := getGroupedFiles(fileStatuses)
197203
if err != nil {
198-
return nil, nil, err
204+
return nil, nil, err, exitError
199205
}
200206
addedAndUpdatedFiles := append(updatedFiles, addedFiles...)
201207

@@ -207,13 +213,13 @@ func UploadToRepo(
207213
))
208214
dummy, err := os.Create(fileName)
209215
if err != nil {
210-
return nil, nil, err
216+
return nil, nil, err, exitError
211217
}
212218
defer dummy.Close()
213219

214220
blob, _, err := createBlobForFile(ctx, client, repo, fileName)
215221
if err != nil {
216-
return nil, nil, err
222+
return nil, nil, err, exitError
217223
}
218224
tree, _, err := createNewTree(
219225
ctx,
@@ -224,15 +230,15 @@ func UploadToRepo(
224230
currentCommit.GetSHA(),
225231
)
226232
if err != nil {
227-
return nil, nil, err
233+
return nil, nil, err, exitError
228234
}
229235

230236
commit, _, err := createNewCommit(
231237
ctx, client, repo, tree,
232238
currentCommit, message,
233239
)
234240
if err != nil {
235-
return nil, nil, err
241+
return nil, nil, err, exitError
236242
}
237243

238244
// Then we delete it and set that commit as the new head commit
@@ -247,25 +253,25 @@ func UploadToRepo(
247253
commit.GetSHA(),
248254
)
249255
if err != nil {
250-
return nil, nil, err
256+
return nil, nil, err, exitError
251257
}
252258

253259
emptyCommit, _, err := createNewCommit(
254260
ctx, client, repo, emptyTree,
255261
currentCommit, message,
256262
)
257263
if err != nil {
258-
return nil, nil, err
264+
return nil, nil, err, exitError
259265
}
260266

261267
ref, resp, respErr := setBranchToCommit(ctx, client, repo, branch, emptyCommit)
262268

263269
err = os.Remove(fileName)
264270
if err != nil {
265-
return nil, nil, err
271+
return nil, nil, err, exitError
266272
}
267273

268-
return ref, resp, respErr
274+
return ref, resp, respErr, exitOk
269275
} else {
270276
if len(addedAndUpdatedFiles) > 0 || len(deletedFiles) > 0 {
271277
// Create a blob for each file
@@ -297,25 +303,30 @@ func UploadToRepo(
297303
blobs = append(blobs, blob)
298304

299305
if err != nil {
300-
return nil, nil, err
306+
return nil, nil, err, exitError
301307
}
302308

303309
filePaths = append(filePaths, file)
304310
}
305311

306312
tree, _, err := createNewTree(ctx, client, repo, blobs, filePaths, currentCommit.GetSHA())
307313
if err != nil {
308-
return nil, nil, err
314+
return nil, nil, err, exitError
309315
}
310316

311317
commit, _, err := createNewCommit(ctx, client, repo, tree, currentCommit, message)
312318
if err != nil {
313-
return nil, nil, err
319+
return nil, nil, err, exitError
320+
}
321+
322+
ref, resp, err := setBranchToCommit(ctx, client, repo, branch, commit)
323+
if err != nil {
324+
return nil, nil, err, exitError
314325
}
315326

316-
return setBranchToCommit(ctx, client, repo, branch, commit)
327+
return ref, resp, err, exitOk
317328
} else {
318-
return nil, nil, errors.New("no new files to commit")
329+
return nil, nil, errors.New("no new files to commit"), exitNoNewFiles
319330
}
320331
}
321332
}

main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,18 @@ func main() {
5858
}
5959

6060
// upload files
61-
ref, _, err := git.UploadToRepo(
61+
ref, _, err, exitCode := git.UploadToRepo(
6262
context.Background(), client, parsedRepo,
6363
*dir, *deletePath, *branch, *baseBranch,
6464
*message, createEmpty, allowEmpty,
6565
)
6666

6767
if err != nil {
6868
fmt.Println("Error uploading files:", err)
69-
return
69+
} else {
70+
fmt.Println("Files uploaded to", *repo, "on branch", *branch, "with ref", *ref)
7071
}
7172

72-
fmt.Println("Files uploaded to", *repo, "on branch", *branch, "with ref", *ref)
73+
os.Exit(exitCode)
7374

7475
}

0 commit comments

Comments
 (0)