@@ -14,18 +14,20 @@ import (
1414 "time"
1515)
1616
17- func Rip (repo config.Repository , storages []config.Storage ) {
17+ func Rip (repo config.Repository , storages []config.Storage ) error {
1818 id := uuid .New ().String ()
1919 // get current directory
2020 currentDir , _ := os .Getwd ()
2121 // create a working directory
2222 err := os .MkdirAll (path .Join (currentDir , ".reaper" , id ), 0774 )
2323 if err != nil {
24- ui .ErrorfExit ("Error creating working directory, %s" , err )
24+ ui .Errorf ("Error creating working directory, %s" , err )
25+ return err
2526 }
2627 err = os .Chmod (path .Join (currentDir , ".reaper" , id ), 0774 )
2728 if err != nil {
28- ui .ErrorfExit ("Error changing permission of working directory, %s" , err )
29+ ui .Errorf ("Error changing permission of working directory, %s" , err )
30+ return err
2931 }
3032
3133 // clone the repo
@@ -35,36 +37,40 @@ func Rip(repo config.Repository, storages []config.Storage) {
3537 })
3638
3739 if err != nil {
38- ui .ErrorfExit ("Error cloning repository, %s" , err )
40+ ui .Errorf ("Error cloning repository, %s" , err )
41+ return err
3942 }
4043
4144 ui .Printf ("Repository %s cloned" , repo .Name )
4245 files , err := archiver .FilesFromDisk (nil , map [string ]string {
4346 path .Join (currentDir , ".reaper" , id ): repo .Name ,
44- // path.Join(currentDir, ".reaper", id): "repo.Name",
4547 // TODO add file hash
4648 })
4749 if err != nil {
48- ui .ErrorfExit ("Error reading files, %s" , err )
50+ ui .Errorf ("Error reading files, %s" , err )
51+ return err
4952 }
5053
5154 now := time .Now ().Format ("20060102150405" )
5255 base := repo .Name + "-" + now + ".tar.gz"
5356 p := path .Join (currentDir , ".reaper" , base )
5457 out , err := os .Create (p )
5558 if err != nil {
56- ui .ErrorfExit ("Error creating archive, %s" , err )
59+ ui .Errorf ("Error creating archive, %s" , err )
60+ return err
5761 }
5862 format := archiver.CompressedArchive {
5963 Compression : archiver.Gz {},
6064 Archival : archiver.Tar {},
6165 }
6266 err = format .Archive (context .Background (), out , files )
6367 if err != nil {
64- ui .ErrorfExit ("Error creating archive, %s" , err )
68+ ui .Errorf ("Error creating archive, %s" , err )
69+ return err
6570 }
6671 if err := out .Close (); err != nil {
67- ui .ErrorfExit ("Error closing archive, %s" , err )
72+ ui .Errorf ("Error closing archive, %s" , err )
73+ return err
6874 }
6975
7076 // handle storages
@@ -74,7 +80,8 @@ func Rip(repo config.Repository, storages []config.Storage) {
7480 fileBackend := storage.File {}
7581 err := fileBackend .PutObjectFromPath (p , path .Join (s .Path , base ))
7682 if err != nil {
77- ui .ErrorfExit ("Error storing file, %s" , err )
83+ ui .Errorf ("Error storing file, %s" , err )
84+ return err
7885 }
7986 ui .Printf ("File %s stored" , path .Join (s .Path , base ))
8087 }
@@ -83,10 +90,13 @@ func Rip(repo config.Repository, storages []config.Storage) {
8390 // cleanup
8491 err = os .RemoveAll (path .Join (currentDir , ".reaper" , id ))
8592 if err != nil {
86- ui .ErrorfExit ("Error cleaning up working directory, %s" , err )
93+ ui .Errorf ("Error cleaning up working directory, %s" , err )
94+ return err
8795 }
8896 err = os .Remove (p )
8997 if err != nil {
90- ui .ErrorfExit ("Error cleaning up archive, %s" , err )
98+ ui .Errorf ("Error cleaning up archive, %s" , err )
99+ return err
91100 }
101+ return nil
92102}
0 commit comments