@@ -38,10 +38,10 @@ type App struct {
38
38
fileSystem * file_system.FileSystem
39
39
}
40
40
41
- func NewApp (home string ) * App {
41
+ func NewApp (home string ) ( * App , error ) {
42
42
cfg , err := config .Init (home )
43
43
if err != nil {
44
- panic ( err )
44
+ return nil , err
45
45
}
46
46
47
47
ctx := context .Background ()
@@ -50,7 +50,7 @@ func NewApp(home string) *App {
50
50
51
51
err = os .MkdirAll (dataDir , os .ModePerm )
52
52
if err != nil {
53
- panic ( err )
53
+ return nil , err
54
54
}
55
55
56
56
options := badger .DefaultOptions (dataDir )
@@ -60,18 +60,20 @@ func NewApp(home string) *App {
60
60
61
61
db , err := badger .Open (options )
62
62
if err != nil {
63
- panic ( err )
63
+ return nil , err
64
64
}
65
65
66
66
apiServer := api .NewAPI (cfg .APICfg .Port )
67
67
68
- f := file_system .NewFileSystem (ctx , db , cfg .APICfg .IPFSPort , cfg .APICfg .IPFSDomain )
69
-
68
+ f , err := file_system .NewFileSystem (ctx , db , cfg .APICfg .IPFSPort , cfg .APICfg .IPFSDomain )
69
+ if err != nil {
70
+ return nil , err
71
+ }
70
72
return & App {
71
73
fileSystem : f ,
72
74
api : apiServer ,
73
75
home : home ,
74
- }
76
+ }, nil
75
77
}
76
78
77
79
func initProviderOnChain (wallet * wallet.Wallet , ip string , totalSpace int64 ) error {
@@ -153,15 +155,15 @@ func (a *App) GetStorageParams(client grpc.ClientConn) (storageTypes.Params, err
153
155
return res .Params , nil
154
156
}
155
157
156
- func (a * App ) Start () {
158
+ func (a * App ) Start () error {
157
159
cfg , err := config .Init (a .home )
158
160
if err != nil {
159
- panic ( err )
161
+ return err
160
162
}
161
163
162
164
w , err := config .InitWallet (a .home )
163
165
if err != nil {
164
- panic ( err )
166
+ return err
165
167
}
166
168
167
169
myAddress := w .AccAddress ()
@@ -179,34 +181,34 @@ func (a *App) Start() {
179
181
log .Info ().Msg ("Provider does not exist on network or is not connected..." )
180
182
err := initProviderOnChain (w , cfg .Ip , cfg .TotalSpace )
181
183
if err != nil {
182
- panic ( err )
184
+ return err
183
185
}
184
186
} else {
185
187
claimers = res .Provider .AuthClaimers
186
188
187
189
totalSpace , err := strconv .ParseInt (res .Provider .Totalspace , 10 , 64 )
188
190
if err != nil {
189
191
if err != nil {
190
- panic ( err )
192
+ return err
191
193
}
192
194
}
193
195
if totalSpace != cfg .TotalSpace {
194
196
err := updateSpace (w , cfg .TotalSpace )
195
197
if err != nil {
196
- panic ( err )
198
+ return err
197
199
}
198
200
}
199
201
if res .Provider .Ip != cfg .Ip {
200
202
err := updateIp (w , cfg .Ip )
201
203
if err != nil {
202
- panic ( err )
204
+ return err
203
205
}
204
206
}
205
207
}
206
208
207
209
params , err := a .GetStorageParams (w .Client .GRPCConn )
208
210
if err != nil {
209
- panic ( err )
211
+ return err
210
212
}
211
213
212
214
myUrl := cfg .Ip
@@ -221,6 +223,7 @@ func (a *App) Start() {
221
223
a .monitor = monitoring .NewMonitor (w )
222
224
223
225
// Starting the 4 concurrent services
226
+ // nolint:all
224
227
go a .api .Serve (a .fileSystem , a .prover , w , params .ChunkSize )
225
228
go a .prover .Start ()
226
229
go a .strayManager .Start (a .fileSystem , myUrl , params .ChunkSize )
@@ -240,4 +243,6 @@ func (a *App) Start() {
240
243
241
244
time .Sleep (time .Second * 30 ) // give the program some time to shut down
242
245
a .fileSystem .Close ()
246
+
247
+ return nil
243
248
}
0 commit comments