From 834bccdace19d2a1ff81705c7b8b376b81833b23 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Thu, 2 Apr 2015 11:16:45 +0900 Subject: [PATCH] Work in progress --- main.go | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index eed1b68..df3189c 100644 --- a/main.go +++ b/main.go @@ -23,9 +23,11 @@ package main import ( + "flag" "github.com/naoina/toml" "io/ioutil" "log" + "os/user" ) func parse(filename string) (*config, error) { @@ -42,13 +44,42 @@ func parse(filename string) (*config, error) { return conf, nil } +func install(conf config, name, target, source string, force, clobber bool) error { + return nil +} + +func uninstall(conf config, name, target string, force, clobber bool) error { + return nil +} + func main() { - conf, err := parse("config.toml") + currUsr, err := user.Current() + if err == nil { + log.Fatal(err) + } + + action := flag.String("action", "install", "'install' or 'uninstall' symlinks") + clobber := flag.Bool("clobber", false, "delete files and directories at target") + force := flag.Bool("force", true, "force creation of parent directories for target") + profile := flag.String("profile", "default", "name of profile to execute") + target := flag.String("target", currUsr.HomeDir, "target directory for symlinks") + + flag.Parse() + + confPath := flag.Arg(0) + source := flag.Arg(1) + + conf, err := parse(confPath) if err != nil { log.Fatal(err) } - if err := conf.process("flatline", "/mnt/storage/sync/Dropbox", "/mnt/storage/projects/blah"); err != nil { - log.Fatal(err) + switch *action { + case "install": + install(*conf, *profile, *target, source, *force, *clobber) + case "uninstall": + uninstall(*conf, *profile, *target, *force, *clobber) + default: + log.Fatalf("Unrecognized action: '%s'", action) } }