MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / removeFileIfIsNotSQLite

Function removeFileIfIsNotSQLite

crypto/kms/pubkeystore.go:349–388  ·  view source on GitHub ↗
(filename string)

Source from the content-addressed store, hash-verified

347}
348
349func removeFileIfIsNotSQLite(filename string) (err error) {
350 var (
351 f *os.File
352 fileHeader [6]byte
353 )
354 if f, err = os.Open(filename); err != nil && os.IsNotExist(err) {
355 // file not exists
356 err = nil
357 return
358 } else if err != nil {
359 // may be no read permission
360 return
361 }
362
363 if _, err = f.Read(fileHeader[:]); err != nil && errors.Cause(err) != io.EOF {
364 // read file failed
365 _ = f.Close()
366 return
367 }
368
369 if string(fileHeader[:]) == "SQLite" {
370 // valid sqlite file
371 err = nil
372 _ = f.Close()
373 return
374 }
375
376 _ = f.Close()
377
378 // backup and remove file
379 bakFile := filename + ".bak"
380 if _, err = os.Stat(bakFile); err != nil && os.IsNotExist(err) {
381 err = nil
382 _ = os.Rename(filename, filename+".bak")
383 } else {
384 _ = os.Remove(filename)
385 }
386
387 return
388}

Callers 1

InitPublicKeyStoreFunction · 0.85

Calls 6

StatMethod · 0.80
RenameMethod · 0.80
ReadMethod · 0.65
CloseMethod · 0.65
OpenMethod · 0.45
RemoveMethod · 0.45

Tested by

no test coverage detected