seafile_recovery/seafile_recovery.go

48 lines
1.4 KiB
Go

package main
import (
"log"
"github.com/docopt/docopt-go"
)
func main() {
usage := `Seafile Recovery.
Usage:
seafile_recovery [--storage=<sto>] head <repoid>
seafile_recovery [--storage=<sto>] ls <repoid> <pathid>
seafile_recovery [--storage=<sto>] dump <repoid> <pathid>
seafile_recovery [--storage=<sto>] s3 <repoid> <pathid> <bucket>
seafile_recovery (-h | --help)
Options:
-h --help Show this screen
--storage=<sto> Set Seafile storage path [default: ./storage]`
var config configCollect
opts, err := docopt.ParseDoc(usage)
if err != nil { log.Fatal(err) }
opts.Bind(&config)
checkRootFolder(config.Storage)
rexists := repoExistsIn(config.Storage, config.RepoId)
if config.Head {
if !rexists["commits"] { log.Fatal("No commits folder found for repo ",config.RepoId) }
cmdHead(config)
} else if config.Ls {
if !rexists["fs"] { log.Fatal("No fs folder found for repo ",config.RepoId) }
cmdLs(config)
} else if config.Dump {
if !rexists["fs"] { log.Fatal("No fs folder found for repo ",config.RepoId) }
if !rexists["blocks"] { log.Fatal("No blocks folder found for repo ",config.RepoId) }
} else if config.S3 {
if !rexists["fs"] { log.Fatal("No fs folder found for repo ",config.RepoId) }
if !rexists["blocks"] { log.Fatal("No blocks folder found for repo ",config.RepoId) }
} else {
log.Fatal("This command is not implemented")
}
}