Files
kopia/cli/app.go
2017-11-27 18:05:44 -08:00

40 lines
1.4 KiB
Go

package cli
import (
"log"
kingpin "gopkg.in/alecthomas/kingpin.v2"
)
var (
app = kingpin.New("kopia", "Kopia - Online Backup").Author("http://kopia.github.io/")
appLogTimestamps *bool
repositoryCommands = app.Command("repository", "Commands to manipulate repository.").Alias("repo")
snapshotCommands = app.Command("snapshot", "Commands to manipulate snapshots.").Alias("snap")
policyCommands = app.Command("policy", "Commands to manipulate snapshotting policies.").Alias("policies")
metadataCommands = app.Command("metadata", "Low-level commands to manipulate metadata items.").Alias("md")
manifestCommands = app.Command("manifest", "Low-level commands to manipulate manifest items.")
objectCommands = app.Command("object", "Commands to manipulate objects in repository.").Alias("obj")
blockCommands = app.Command("block", "Commands to manipulate blocks in repository.").Alias("blk")
blockIndexCommands = blockCommands.Command("index", "Commands to manipulate block indexes.")
)
func init() {
appLogTimestamps = app.Flag("log-timestamps", "Log timestamps").Hidden().Action(enableLogTimestamps).Bool()
}
// App returns an instance of command-line application object.
func App() *kingpin.Application {
return app
}
func enableLogTimestamps(context *kingpin.ParseContext) error {
if *appLogTimestamps {
log.SetFlags(log.LstdFlags | log.Lmicroseconds)
} else {
log.SetFlags(0)
}
return nil
}