restic/src/cmds/restic/main.go

52 lines
1.1 KiB
Go
Raw Normal View History

2014-04-27 22:00:15 +00:00
package main
import (
2015-07-12 20:10:01 +00:00
"fmt"
2014-04-27 22:00:15 +00:00
"github.com/jessevdk/go-flags"
"os"
"restic"
"restic/debug"
"runtime"
2014-04-27 22:00:15 +00:00
)
func init() {
2014-11-16 21:50:20 +00:00
// set GOMAXPROCS to number of CPUs
if runtime.Version() < "go1.5" {
gomaxprocs := os.Getenv("GOMAXPROCS")
debug.Log("restic", "read GOMAXPROCS from env variable, value: %s", gomaxprocs)
if gomaxprocs == "" {
runtime.GOMAXPROCS(runtime.NumCPU())
}
}
2014-04-27 22:00:15 +00:00
}
func main() {
// defer profile.Start(profile.MemProfileRate(100000), profile.ProfilePath(".")).Stop()
2015-02-21 23:09:57 +00:00
// defer profile.Start(profile.CPUProfile, profile.ProfilePath(".")).Stop()
globalOpts.Repo = os.Getenv("RESTIC_REPOSITORY")
globalOpts.password = os.Getenv("RESTIC_PASSWORD")
2014-04-27 22:00:15 +00:00
2015-01-14 21:08:48 +00:00
debug.Log("restic", "main %#v", os.Args)
2014-12-07 15:30:52 +00:00
_, err := parser.Parse()
2014-04-27 22:00:15 +00:00
if e, ok := err.(*flags.Error); ok && e.Type == flags.ErrHelp {
2016-01-17 15:59:03 +00:00
parser.WriteHelp(os.Stdout)
2014-04-27 22:00:15 +00:00
os.Exit(0)
}
2016-01-17 15:59:03 +00:00
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
}
2015-07-12 20:10:01 +00:00
if restic.IsAlreadyLocked(err) {
fmt.Fprintf(os.Stderr, "\nthe `unlock` command can be used to remove stale locks\n")
}
2015-07-19 15:57:18 +00:00
RunCleanupHandlers()
2014-09-23 20:39:12 +00:00
if err != nil {
2014-12-07 15:30:52 +00:00
os.Exit(1)
2014-04-27 22:00:15 +00:00
}
}