Skip to content

Commit e054fcc

Browse files
Merge pull request #9 from prefapp/fix/add-exist-codes
fix: Added exit codes
2 parents d1c3e89 + bf75f34 commit e054fcc

2 files changed

Lines changed: 34 additions & 19 deletions

File tree

git/git.go

Lines changed: 30 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,28 @@ 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)
268+
if respErr != nil {
269+
return nil, nil, respErr, exitError
270+
}
262271

263272
err = os.Remove(fileName)
264273
if err != nil {
265-
return nil, nil, err
274+
return nil, nil, err, exitError
266275
}
267276

268-
return ref, resp, respErr
277+
return ref, resp, respErr, exitOk
269278
} else {
270279
if len(addedAndUpdatedFiles) > 0 || len(deletedFiles) > 0 {
271280
// Create a blob for each file
@@ -297,25 +306,30 @@ func UploadToRepo(
297306
blobs = append(blobs, blob)
298307

299308
if err != nil {
300-
return nil, nil, err
309+
return nil, nil, err, exitError
301310
}
302311

303312
filePaths = append(filePaths, file)
304313
}
305314

306315
tree, _, err := createNewTree(ctx, client, repo, blobs, filePaths, currentCommit.GetSHA())
307316
if err != nil {
308-
return nil, nil, err
317+
return nil, nil, err, exitError
309318
}
310319

311320
commit, _, err := createNewCommit(ctx, client, repo, tree, currentCommit, message)
312321
if err != nil {
313-
return nil, nil, err
322+
return nil, nil, err, exitError
323+
}
324+
325+
ref, resp, err := setBranchToCommit(ctx, client, repo, branch, commit)
326+
if err != nil {
327+
return nil, nil, err, exitError
314328
}
315329

316-
return setBranchToCommit(ctx, client, repo, branch, commit)
330+
return ref, resp, err, exitOk
317331
} else {
318-
return nil, nil, errors.New("no new files to commit")
332+
return nil, nil, errors.New("no new files to commit"), exitNoNewFiles
319333
}
320334
}
321335
}

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)