@@ -148,7 +148,7 @@ func (server *RPC) RPCDelete(req Request, res *Response) error {
148
148
return nil
149
149
}
150
150
151
- func Init (reset bool , deppath string ) * Error {
151
+ func Init (reset bool , deppath string , useOldGlibc bool ) * Error {
152
152
currdir , err := GetConfigDir ()
153
153
if err != nil {
154
154
return err
@@ -157,7 +157,7 @@ func Init(reset bool, deppath string) *Error {
157
157
config := fmt .Sprintf ("%s/.lpmxsys" , currdir )
158
158
159
159
//delete everything
160
- if reset {
160
+ if reset || useOldGlibc {
161
161
_ , cerr := RemoveAll (config )
162
162
if cerr != nil {
163
163
return cerr
@@ -212,10 +212,19 @@ func Init(reset bool, deppath string) *Error {
212
212
deppath = fmt .Sprintf ("%s/dependency.tar.gz" , sys .RootDir )
213
213
}
214
214
if ! FileExist (deppath ) {
215
- yaml := fmt .Sprintf ("%s/distro.management.yml" , sys .RootDir )
216
- err = DownloadFilefromGithubPlus (dist , release , "dependency.tar.gz" , SETTING_URL , sys .RootDir , yaml )
217
- if err != nil {
218
- return err
215
+ if useOldGlibc {
216
+ gen_url := fmt .Sprintf ("%s/default.dependency.tar.gz" , SETTING_URL )
217
+ fmt .Printf ("Downloading default.dependency.tar.gz from %s\n " , gen_url )
218
+ err = DirectDownloadFilefromGithub ("dependency.tar.gz" , gen_url , sys .RootDir )
219
+ if err != nil {
220
+ return err
221
+ }
222
+ } else {
223
+ yaml := fmt .Sprintf ("%s/distro.management.yml" , sys .RootDir )
224
+ err = DownloadFilefromGithubPlus (dist , release , "dependency.tar.gz" , SETTING_URL , sys .RootDir , yaml )
225
+ if err != nil {
226
+ return err
227
+ }
219
228
}
220
229
}
221
230
@@ -274,6 +283,72 @@ func Init(reset bool, deppath string) *Error {
274
283
return nil
275
284
}
276
285
286
+ func Reset (useOldGlibc bool ) * Error {
287
+ currdir , err := GetConfigDir ()
288
+ if err != nil {
289
+ return err
290
+ }
291
+ config := fmt .Sprintf ("%s/.lpmxsys" , currdir )
292
+
293
+ if ok , pid , _ := GetProcessIdByName ("memcached" ); ok {
294
+ fmt .Println ("stopping memcached instance..." )
295
+ err := KillProcessByPid (pid )
296
+ if err != nil {
297
+ return err
298
+ }
299
+ }
300
+
301
+ var sys Sys
302
+ sys .RootDir = config
303
+ err = unmarshalObj (sys .RootDir , & sys )
304
+ if err != nil {
305
+ return err
306
+ }
307
+
308
+ //download memcached related files based on host os info
309
+ dist , release , cerr := GetHostOSInfo ()
310
+ if cerr != nil {
311
+ dist = "default"
312
+ release = "default"
313
+ }
314
+
315
+ if dist == "" {
316
+ dist = "default"
317
+ }
318
+
319
+ if release == "" {
320
+ release = "default"
321
+ }
322
+
323
+ deppath := fmt .Sprintf ("%s/dependency.tar.gz" , sys .RootDir )
324
+ if FileExist (deppath ) {
325
+ RemoveFile (deppath )
326
+ }
327
+
328
+ if useOldGlibc {
329
+ gen_url := fmt .Sprintf ("%s/default.dependency.tar.gz" , SETTING_URL )
330
+ fmt .Printf ("Downloading default.dependency.tar.gz from %s\n " , gen_url )
331
+ err = DirectDownloadFilefromGithub ("dependency.tar.gz" , gen_url , sys .RootDir )
332
+ if err != nil {
333
+ return err
334
+ }
335
+ } else {
336
+ yaml := fmt .Sprintf ("%s/distro.management.yml" , sys .RootDir )
337
+ err = DownloadFilefromGithubPlus (dist , release , "dependency.tar.gz" , SETTING_URL , sys .RootDir , yaml )
338
+ if err != nil {
339
+ return err
340
+ }
341
+ }
342
+
343
+ fmt .Println ("Uncompressing downloaded dependency.tar.gz" )
344
+ err = Untar (deppath , sys .RootDir )
345
+ if err != nil {
346
+ return err
347
+ }
348
+
349
+ return nil
350
+ }
351
+
277
352
func Uninstall () * Error {
278
353
currdir , err := GetConfigDir ()
279
354
if err != nil {
@@ -1769,7 +1844,7 @@ func SkopeoLoad(name, dir string) *Error {
1769
1844
1770
1845
//check if folder exists
1771
1846
adir , derr := filepath .Abs (dir )
1772
- if derr != nil {
1847
+ if derr != nil {
1773
1848
cerr := ErrNew (derr , fmt .Sprintf ("could not parse the absolute path: %s" , adir ))
1774
1849
return cerr
1775
1850
}
0 commit comments