[issue #4] make sure ~/.jira.d/tmp exists before we write to it during create/edit

This commit is contained in:
Cory Bennett
2015-02-16 14:31:39 -08:00
parent 9d6fdf73e5
commit a7399c7f48
3 changed files with 23 additions and 12 deletions
+4
View File
@@ -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)
+1 -12
View File
@@ -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 {
+18
View File
@@ -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
}