tweak getTemplate routine

This commit is contained in:
Cory Bennett
2015-02-13 16:03:03 -08:00
parent 97ad931f79
commit 76ec33e7e3
3 changed files with 38 additions and 24 deletions
+12 -3
View File
@@ -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)
}
+12 -12
View File
@@ -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,
+14 -9
View File
@@ -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 }}"