From 76ec33e7e3f2e3c867daaffc959d20b87b5a1421 Mon Sep 17 00:00:00 2001 From: Cory Bennett Date: Fri, 13 Feb 2015 16:03:03 -0800 Subject: [PATCH] tweak getTemplate routine --- jira/cli/cli.go | 15 ++++++++++++--- jira/cli/commands.go | 24 ++++++++++++------------ jira/cli/templates.go | 23 ++++++++++++++--------- 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/jira/cli/cli.go b/jira/cli/cli.go index 73b854c..62f1776 100644 --- a/jira/cli/cli.go +++ b/jira/cli/cli.go @@ -13,6 +13,7 @@ import ( "os" "os/exec" "runtime" + "strings" "time" ) @@ -169,7 +170,7 @@ func (c *Cli) makeRequest(req *http.Request) (resp *http.Response, err error) { return resp, nil } -func (c *Cli) getTemplate(path string, dflt string) string { +func (c *Cli) getTemplate(name string) string { if override, ok := c.opts["template"]; ok { if _, err := os.Stat(override); err == nil { return readFile(override) @@ -177,10 +178,18 @@ func (c *Cli) getTemplate(path string, dflt string) string { if file, err := FindClosestParentPath(fmt.Sprintf(".jira.d/templates/%s", override)); err == nil { return readFile(file) } + if dflt, ok := all_templates[override]; ok { + return dflt + } } } - if file, err := FindClosestParentPath(path); err != nil { - return dflt + if file, err := FindClosestParentPath(fmt.Sprintf(".jira.d/templates/%s", name)); err != nil { + // create-bug etc are special, if we dont find it in the path + // then just return a generic create template + if strings.HasPrefix(name, "create-") { + return all_templates["create"] + } + return all_templates[name] } else { return readFile(file) } diff --git a/jira/cli/commands.go b/jira/cli/commands.go index a3534ef..b0bc13e 100644 --- a/jira/cli/commands.go +++ b/jira/cli/commands.go @@ -52,7 +52,7 @@ func (c *Cli) CmdFields() error { return err } - return runTemplate(c.getTemplate(".jira.d/templates/fields", default_fields_template), data, nil) + return runTemplate(c.getTemplate("fields"), data, nil) } func (c *Cli) CmdList() error { @@ -100,7 +100,7 @@ func (c *Cli) CmdList() error { return err } - return runTemplate(c.getTemplate(".jira.d/templates/list", default_list_template), data, nil) + return runTemplate(c.getTemplate("list"), data, nil) } func (c *Cli) CmdView(issue string) error { @@ -111,7 +111,7 @@ func (c *Cli) CmdView(issue string) error { return err } - return runTemplate(c.getTemplate(".jira.d/templates/view", default_view_template), data, nil) + return runTemplate(c.getTemplate("view"), data, nil) } func (c *Cli) CmdEdit(issue string) error { @@ -135,7 +135,7 @@ func (c *Cli) CmdEdit(issue string) error { issueData["overrides"] = c.opts return c.editTemplate( - c.getTemplate(".jira.d/templates/edit", default_edit_template), + c.getTemplate("edit"), fmt.Sprintf("%s-edit-", issue), issueData, func(json string) error { @@ -166,7 +166,7 @@ func (c *Cli) CmdEditMeta(issue string) error { return err } - return runTemplate(c.getTemplate(".jira.d/templates/editmeta", default_fields_template), data, nil) + return runTemplate(c.getTemplate("editmeta"), data, nil) } func (c *Cli) CmdTransitionMeta(issue string) error { @@ -177,7 +177,7 @@ func (c *Cli) CmdTransitionMeta(issue string) error { return err } - return runTemplate(c.getTemplate(".jira.d/templates/transmeta", default_fields_template), data, nil) + return runTemplate(c.getTemplate("transmeta"), data, nil) } func (c *Cli) CmdIssueTypes(project string) error { @@ -188,7 +188,7 @@ func (c *Cli) CmdIssueTypes(project string) error { return err } - return runTemplate(c.getTemplate(".jira.d/templates/issuetypes", default_issuetypes_template), data, nil) + return runTemplate(c.getTemplate("issuetypes"), data, nil) } func (c *Cli) CmdCreateMeta(project string, issuetype string) error { @@ -205,7 +205,7 @@ func (c *Cli) CmdCreateMeta(project string, issuetype string) error { } } - return runTemplate(c.getTemplate(".jira.d/templates/createmeta", default_fields_template), data, nil) + return runTemplate(c.getTemplate("createmeta"), data, nil) } func (c *Cli) CmdTransitions(issue string) error { @@ -215,7 +215,7 @@ func (c *Cli) CmdTransitions(issue string) error { if err != nil { return err } - return runTemplate(c.getTemplate(".jira.d/templates/transitions", default_transitions_template), data, nil) + return runTemplate(c.getTemplate("transitions"), data, nil) } func (c *Cli) CmdCreate(project string, issuetype string) error { @@ -238,7 +238,7 @@ func (c *Cli) CmdCreate(project string, issuetype string) error { sanitizedType := strings.ToLower(strings.Replace(issuetype, " ", "", -1)) return c.editTemplate( - c.getTemplate(fmt.Sprintf(".jira.d/templates/create-%s", sanitizedType), default_create_template), + c.getTemplate(fmt.Sprintf("create-%s", sanitizedType)), fmt.Sprintf("create-%s-", sanitizedType), issueData, func(json string) error { @@ -277,7 +277,7 @@ func (c *Cli) CmdIssueLinkTypes() error { if err != nil { return err } - return runTemplate(c.getTemplate(".jira.d/templates/issuelinktypes", default_fields_template), data, nil) + return runTemplate(c.getTemplate("issuelinktypes"), data, nil) } func (c *Cli) CmdBlocks(blocker string, issue string) error { @@ -473,7 +473,7 @@ func (c *Cli) CmdComment(issue string) error { return handlePost(json) } else { return c.editTemplate( - c.getTemplate(".jira.d/templates/comment", default_comment_template), + c.getTemplate("comment"), fmt.Sprintf("%s-create-", issue), map[string]interface{}{}, handlePost, diff --git a/jira/cli/templates.go b/jira/cli/templates.go index 2bbb4d5..9f53629 100644 --- a/jira/cli/templates.go +++ b/jira/cli/templates.go @@ -1,17 +1,22 @@ package cli var all_templates = map[string]string{ - "fields": default_fields_template, - "list": default_list_template, - "view": default_view_template, - "edit": default_edit_template, - "transitions": default_transitions_template, - "issuetypes": default_issuetypes_template, - "create": default_create_template, - "comment": default_comment_template, + "debug": default_debug_template, + "fields": default_debug_template, + "editmeta": default_debug_template, + "transmeta": default_debug_template, + "createmeta": default_debug_template, + "issuelinktypes": default_debug_template, + "list": default_list_template, + "view": default_view_template, + "edit": default_edit_template, + "transitions": default_transitions_template, + "issuetypes": default_issuetypes_template, + "create": default_create_template, + "comment": default_comment_template, } -const default_fields_template = "{{ . | toJson}}\n" +const default_debug_template = "{{ . | toJson}}\n" const default_list_template = "{{ range .issues }}{{ .key | append \":\" | printf \"%-12s\"}} {{ .fields.summary }}\n{{ end }}"