Skip to content

Commit 30998be

Browse files
committed
adds reusable log-and-exit function
1 parent 6c8d0c1 commit 30998be

1 file changed

Lines changed: 19 additions & 15 deletions

File tree

tarsplitter.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"fmt"
77
"io"
88
"io/ioutil"
9-
"log"
109
"os"
1110
"path/filepath"
1211
)
@@ -15,6 +14,12 @@ var input = flag.String("i", "", "input tar file to be split")
1514
var output = flag.String("o", "", "output path")
1615
var partCount = flag.Int64("p", 4, "number of equal parts to split the tar file into")
1716

17+
// fatal replaces fatal which does not print in some situations in prod
18+
func fatal(args ...interface{}) {
19+
fmt.Println(args...)
20+
os.Exit(0)
21+
}
22+
1823
func main() {
1924
flag.Parse()
2025
if *input == "" || *partCount <= 0 {
@@ -25,15 +30,14 @@ func main() {
2530

2631
file, err := os.Open(*input)
2732
if err != nil {
28-
// handle the error here
29-
return
33+
fatal("Failed statting input", *input, err)
3034
}
3135
defer file.Close()
3236

3337
// get the file size
3438
stat, err := file.Stat()
3539
if err != nil {
36-
log.Fatal("Failed statting input", *input, err)
40+
fatal("Failed statting input", *input, err)
3741
}
3842

3943
partSizeBytes := stat.Size() / *partCount
@@ -54,11 +58,11 @@ func main() {
5458

5559
p, err := filepath.Abs(fmt.Sprintf("%s%d.tar", *output, newTarCounter))
5660
if err != nil {
57-
log.Fatal("Something is not quite right with the output path", err)
61+
fatal("Something is not quite right with the output path", err)
5862
}
5963
newTarFile, err := os.Create(p)
6064
if err != nil {
61-
log.Fatal("Failed opening new tar part", err)
65+
fatal("Failed opening new tar part", err)
6266
}
6367
newTar := tar.NewWriter(newTarFile)
6468
fmt.Println("First new archive is", newTarFile.Name())
@@ -86,15 +90,15 @@ func main() {
8690
// add the file from the original archive to the new archive
8791
tempInfo, _ = newTarFile.Stat()
8892
bytesBeforeWrite = tempInfo.Size()
89-
if err := newTar.WriteHeader(info); err != nil {
90-
log.Fatal("failed writing header between tars", err)
93+
if err = newTar.WriteHeader(info); err != nil {
94+
fatal("failed writing header between tars", err)
9195
}
92-
if _, err := newTar.Write(contents); err != nil {
93-
log.Fatal("failed writing file body between tars", err)
96+
if _, err = newTar.Write(contents); err != nil {
97+
fatal("failed writing file body between tars", err)
9498
}
9599

96100
filesProcessed++
97-
if filesProcessed % 10000 == 0 {
101+
if filesProcessed%10000 == 0 {
98102
fmt.Println("Processed files=", filesProcessed)
99103
}
100104

@@ -109,19 +113,19 @@ func main() {
109113

110114
err = newTar.Close()
111115
if err != nil {
112-
log.Fatal("failed closing tar writer", err)
116+
fatal("failed closing tar writer", err)
113117
}
114118
err = newTarFile.Close()
115119
if err != nil {
116-
log.Fatal("failed closing tar file", err)
120+
fatal("failed closing tar file", err)
117121
}
118122
p, err = filepath.Abs(fmt.Sprintf("%s%d.tar", *output, newTarCounter))
119123
if err != nil {
120-
log.Fatal("new archive output path failed to initialize", err)
124+
fatal("new archive output path failed to initialize", err)
121125
}
122126
newTarFile, err = os.Create(p)
123127
if err != nil {
124-
log.Fatal("Failed opening new tar part", err)
128+
fatal("Failed opening new tar part", err)
125129
}
126130
newTar = tar.NewWriter(newTarFile)
127131

0 commit comments

Comments
 (0)