- src, err := ioutil.ReadFile(args[2])
- if err != nil {
- log.Fatal(err)
- }
- var x bytes.Buffer
- if t == FileTypePlain {
- x.Write(src)
- } else if t == FileTypePasswd {
+ flag.Usage()
+ os.Exit(1)
+}
+
+func mainFetch(cfgPath string) error {
+ cfg, err := LoadConfig(cfgPath)
+ if err != nil {
+ return err
+ }
+ state, err := LoadState(cfg.StatePath)
+ if err != nil {
+ return err
+ }
+ err = handleFiles(cfg, state)
+ if err != nil {
+ return err
+ }
+ // NOTE: Make sure to call WriteState() only if there were no
+ // errors (see WriteState() and README)
+ err = WriteState(cfg.StatePath, state)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func mainConvert(typ, srcPath, dstPath string) error {
+ var t FileType
+ err := t.UnmarshalText([]byte(typ))
+ if err != nil {
+ return err
+ }
+
+ src, err := ioutil.ReadFile(srcPath)
+ if err != nil {
+ return err
+ }
+ var x bytes.Buffer
+ if t == FileTypePlain {
+ x.Write(src)
+ } else if t == FileTypePasswd {