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")
1514var output = flag .String ("o" , "" , "output path" )
1615var 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+
1823func 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