From 157b219876a70e818c6e0a8a563bac6e2f26ef39 Mon Sep 17 00:00:00 2001 From: Ivo Jimenez Date: Mon, 9 Oct 2017 08:30:09 -0700 Subject: [PATCH] Creates .popper.yml configuration file fixes #159 --- popper/add.go | 5 +++++ popper/init.go | 28 ++++++++++++++++++++-------- popper/version.go | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/popper/add.go b/popper/add.go index 651a7e49e..0e6be2869 100644 --- a/popper/add.go +++ b/popper/add.go @@ -57,9 +57,14 @@ var addCmd = &cobra.Command{ if !sh.Test("dir", ".git") { log.Fatalln("Can't find .git folder. Are you on the root folder of project?") } + if strings.HasPrefix(args[0], "paper-") { addExperiment("paper", args[0], "paper/") } else { + // create experiments folder if it doesn't exist + if err := sh.Command("mkdir", "-p", "experiments/").Run(); err != nil { + log.Fatalln(err) + } addExperiment("experiments", args[0], "experiments/"+expname) } diff --git a/popper/init.go b/popper/init.go index f5f793139..a69873ce0 100644 --- a/popper/init.go +++ b/popper/init.go @@ -98,19 +98,31 @@ func initExperiment(name string) { } var initCmd = &cobra.Command{ - Use: "init ", - Short: "Initializes an experiment or paper folder.", - Long: `Initializes an experiment or paper folder. If the given name is 'paper', -then a 'paper' folder is created. Otherwise, an experiment named 'name' -is created.`, + Use: "init []", + Short: "Initializes a repository, experiment or paper folder.", + Long: `Without any arguments, this command initializes a popper repository. If +an argument is given, an experiment or paper folder is initialized. If the given +name is 'paper', then a 'paper' folder is created. Otherwise, an experiment named +'name' is created.`, Run: func(cmd *cobra.Command, args []string) { - if len(args) != 1 { - log.Fatalln("This command takes one argument.") + if len(args) > 1 { + log.Fatalln("This command takes one argument at most.") } if !sh.Test("dir", ".git") { log.Fatalln("Can't find .git folder. Are you on the root folder of project?") } - initExperiment(args[0]) + if len(args) == 0 { + if sh.Test("file", ".popper.yml") { + log.Fatalln("File .popper.yml already exists") + } + err := ioutil.WriteFile(".popper.yml", []byte(""), 0644) + if err != nil { + log.Fatalln(err) + } + fmt.Println("Initialized popper repository.") + } else { + initExperiment(args[0]) + } }, } diff --git a/popper/version.go b/popper/version.go index 0a03246da..567c36b70 100644 --- a/popper/version.go +++ b/popper/version.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/cobra" ) -var versionId = "0.4.1" +var versionId = "0.5-dev" var versionCmd = &cobra.Command{ Use: "version",