github.com/hoffie/larasync@v0.0.0-20151025221940-0384d2bddcef/cmd/lara/init.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/hoffie/larasync/repository" 8 ) 9 10 // initAction initializes a new repository. 11 func (d *Dispatcher) initAction() int { 12 args := d.context.Args() 13 numArgs := len(args) 14 var target string 15 if numArgs < 1 { 16 pwd, err := os.Getwd() 17 if err != nil { 18 fmt.Fprint(d.stderr, "Unable to get current directory\n") 19 return 1 20 } 21 target = pwd 22 } else { 23 target = args[0] 24 err := os.Mkdir(target, 0700) 25 if err != nil && os.IsExist(err) { 26 fmt.Fprint(d.stderr, "Unable to create directory\n") 27 return 1 28 } 29 } 30 repo := repository.NewClient(target) 31 err := repo.CreateManagementDir() 32 if err != nil { 33 fmt.Fprint(d.stderr, "Unable to create management directory\n") 34 return 1 35 } 36 err = repo.CreateKeys() 37 if err != nil { 38 fmt.Fprintf(d.stderr, "Unable to generate encryption keys\n") 39 return 1 40 } 41 return 0 42 }