diff --git a/jira/cli/cli.go b/jira/cli/cli.go index b85ee37..d009f49 100644 --- a/jira/cli/cli.go +++ b/jira/cli/cli.go @@ -202,6 +202,10 @@ func (c *Cli) getTemplate(name string) string { func (c *Cli) editTemplate(template string, tmpFilePrefix string, templateData map[string]interface{}, templateProcessor func(string) error) error { tmpdir := fmt.Sprintf("%s/.jira.d/tmp", os.Getenv("HOME")) + if err := mkdir(tmpdir); err != nil { + return err + } + fh, err := ioutil.TempFile(tmpdir, tmpFilePrefix) if err != nil { log.Error("Failed to make temp file in %s: %s", tmpdir, err) diff --git a/jira/cli/commands.go b/jira/cli/commands.go index 0994fed..54474c7 100644 --- a/jira/cli/commands.go +++ b/jira/cli/commands.go @@ -532,19 +532,8 @@ func (c *Cli) CmdAssign(issue string, user string) error { func (c *Cli) CmdExportTemplates() error { dir := c.opts["directory"] - if stat, err := os.Stat(dir); err != nil && !os.IsNotExist(err) { - log.Error("Failed to stat %s: %s", dir, err) + if err := mkdir(dir); err != nil { return err - } else if err == nil && !stat.IsDir() { - err := fmt.Errorf("%s exists and is not a directory!", dir) - log.Error("%s", err) - return err - } else { - // dir does not exist, so try to create it - if err := os.MkdirAll(dir, 0755); err != nil { - log.Error("Failed to mkdir -p %s: %s", dir, err) - return err - } } for name, template := range all_templates { diff --git a/jira/cli/util.go b/jira/cli/util.go index de8fcfe..0bd117f 100644 --- a/jira/cli/util.go +++ b/jira/cli/util.go @@ -216,3 +216,21 @@ func yamlFixup(data interface{}) (interface{}, error) { return d, nil } } + +func mkdir(dir string) error { + if stat, err := os.Stat(dir); err != nil && !os.IsNotExist(err) { + log.Error("Failed to stat %s: %s", dir, err) + return err + } else if err == nil && !stat.IsDir() { + err := fmt.Errorf("%s exists and is not a directory!", dir) + log.Error("%s", err) + return err + } else { + // dir does not exist, so try to create it + if err := os.MkdirAll(dir, 0755); err != nil { + log.Error("Failed to mkdir -p %s: %s", dir, err) + return err + } + } + return nil +}