package main import ( "log" "github.com/docopt/docopt-go" ) func main() { usage := `Seafile Recovery. Usage: seafile_recovery [--storage=] head seafile_recovery [--storage=] ls seafile_recovery [--storage=] dump seafile_recovery [--storage=] s3 seafile_recovery (-h | --help) Options: -h --help Show this screen --storage= 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") } }