minor alias scriptability changes

This commit is contained in:
vilmibm 2020-07-16 16:41:50 -05:00
parent eb1b9122d8
commit 2dd42eb9aa
2 changed files with 41 additions and 20 deletions

View file

@ -82,8 +82,10 @@ func aliasSet(cmd *cobra.Command, args []string) error {
alias := args[0]
expansion := args[1]
out := colorableOut(cmd)
fmt.Fprintf(out, "- Adding alias for %s: %s\n", utils.Bold(alias), utils.Bold(expansion))
stderr := colorableErr(cmd)
if connectedToTerminal(cmd) {
fmt.Fprintf(stderr, "- Adding alias for %s: %s\n", utils.Bold(alias), utils.Bold(expansion))
}
shell, err := cmd.Flags().GetBool("shell")
if err != nil {
@ -119,7 +121,9 @@ func aliasSet(cmd *cobra.Command, args []string) error {
return fmt.Errorf("could not create alias: %s", err)
}
fmt.Fprintln(out, successMsg)
if connectedToTerminal(cmd) {
fmt.Fprintln(stderr, successMsg)
}
return nil
}
@ -156,7 +160,9 @@ func aliasList(cmd *cobra.Command, args []string) error {
stderr := colorableErr(cmd)
if aliasCfg.Empty() {
fmt.Fprintf(stderr, "no aliases configured\n")
if connectedToTerminal(cmd) {
fmt.Fprintf(stderr, "no aliases configured\n")
}
return nil
}
@ -217,9 +223,11 @@ func aliasDelete(cmd *cobra.Command, args []string) error {
return fmt.Errorf("failed to delete alias %s: %w", alias, err)
}
out := colorableOut(cmd)
redCheck := utils.Red("✓")
fmt.Fprintf(out, "%s Deleted alias %s; was %s\n", redCheck, alias, expansion)
if connectedToTerminal(cmd) {
stderr := colorableErr(cmd)
redCheck := utils.Red("✓")
fmt.Fprintf(stderr, "%s Deleted alias %s; was %s\n", redCheck, alias, expansion)
}
return nil
}

View file

@ -42,6 +42,8 @@ editor: vim
`
initBlankContext(cfg, "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
defer config.StubWriteConfig(&mainBuf, &hostsBuf)()
@ -52,7 +54,8 @@ editor: vim
t.Fatalf("unexpected error: %s", err)
}
test.ExpectLines(t, output.String(), "Added alias")
test.ExpectLines(t, output.Stderr(), "Added alias")
test.ExpectLines(t, output.String(), "")
expected := `aliases:
co: pr checkout
@ -71,6 +74,7 @@ aliases:
co: pr checkout
`
initBlankContext(cfg, "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
@ -82,11 +86,12 @@ aliases:
t.Fatalf("unexpected error: %s", err)
}
test.ExpectLines(t, output.String(), "Changed alias co from pr checkout to pr checkout -Rcool/repo")
test.ExpectLines(t, output.Stderr(), "Changed alias.*co.*from.*pr checkout.*to.*pr checkout -Rcool/repo")
}
func TestAliasSet_space_args(t *testing.T) {
initBlankContext("", "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
@ -98,28 +103,29 @@ func TestAliasSet_space_args(t *testing.T) {
t.Fatalf("unexpected error: %s", err)
}
test.ExpectLines(t, output.String(), `Adding alias for il: issue list -l "cool story"`)
test.ExpectLines(t, output.Stderr(), `Adding alias for.*il.*issue list -l "cool story"`)
test.ExpectLines(t, mainBuf.String(), `il: issue list -l "cool story"`)
}
func TestAliasSet_arg_processing(t *testing.T) {
initBlankContext("", "OWNER/REPO", "trunk")
defer stubTerminal(true)()
cases := []struct {
Cmd string
ExpectedOutputLine string
ExpectedConfigLine string
}{
{`alias set il "issue list"`, "- Adding alias for il: issue list", "il: issue list"},
{`alias set il "issue list"`, "- Adding alias for.*il.*issue list", "il: issue list"},
{`alias set iz 'issue list'`, "- Adding alias for iz: issue list", "iz: issue list"},
{`alias set iz 'issue list'`, "- Adding alias for.*iz.*issue list", "iz: issue list"},
{`alias set ii 'issue list --author="$1" --label="$2"'`,
`- Adding alias for ii: issue list --author="\$1" --label="\$2"`,
`- Adding alias for.*ii.*issue list --author="\$1" --label="\$2"`,
`ii: issue list --author="\$1" --label="\$2"`},
{`alias set ix "issue list --author='\$1' --label='\$2'"`,
`- Adding alias for ix: issue list --author='\$1' --label='\$2'`,
`- Adding alias for.*ix.*issue list --author='\$1' --label='\$2'`,
`ix: issue list --author='\$1' --label='\$2'`},
}
@ -133,7 +139,7 @@ func TestAliasSet_arg_processing(t *testing.T) {
t.Fatalf("got unexpected error running %s: %s", c.Cmd, err)
}
test.ExpectLines(t, output.String(), c.ExpectedOutputLine)
test.ExpectLines(t, output.Stderr(), c.ExpectedOutputLine)
test.ExpectLines(t, mainBuf.String(), c.ExpectedConfigLine)
}
}
@ -143,6 +149,7 @@ func TestAliasSet_init_alias_cfg(t *testing.T) {
editor: vim
`
initBlankContext(cfg, "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
@ -157,7 +164,7 @@ aliases:
diff: pr diff
`
test.ExpectLines(t, output.String(), "Adding alias for diff: pr diff", "Added alias.")
test.ExpectLines(t, output.Stderr(), "Adding alias for.*diff.*pr diff", "Added alias.")
eq(t, mainBuf.String(), expected)
}
@ -167,6 +174,7 @@ aliases:
foo: bar
`
initBlankContext(cfg, "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
@ -181,7 +189,7 @@ aliases:
view: pr view
`
test.ExpectLines(t, output.String(), "Adding alias for view: pr view", "Added alias.")
test.ExpectLines(t, output.Stderr(), "Adding alias for.*view.*pr view", "Added alias.")
eq(t, mainBuf.String(), expected)
}
@ -349,6 +357,7 @@ aliases:
ia: issue list --author="$1" --assignee="$1"
`
initBlankContext(cfg, "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
@ -359,7 +368,7 @@ aliases:
t.Fatalf("unexpected error: %s", err)
}
test.ExpectLines(t, output.String(), "Deleted alias co; was pr checkout")
test.ExpectLines(t, output.Stderr(), "Deleted alias co; was pr checkout")
expected := `aliases:
il: issue list --author="$1" --label="$2"
@ -372,6 +381,8 @@ aliases:
func TestShellAlias_flag(t *testing.T) {
initBlankContext("", "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
defer config.StubWriteConfig(&mainBuf, &hostsBuf)()
@ -381,7 +392,7 @@ func TestShellAlias_flag(t *testing.T) {
t.Fatalf("unexpected error: %s", err)
}
test.ExpectLines(t, output.String(), "Adding alias for igrep")
test.ExpectLines(t, output.Stderr(), "Adding alias for.*igrep")
expected := `aliases:
igrep: '!gh issue list | grep'
`
@ -392,6 +403,8 @@ func TestShellAlias_flag(t *testing.T) {
func TestShellAlias_bang(t *testing.T) {
initBlankContext("", "OWNER/REPO", "trunk")
defer stubTerminal(true)()
mainBuf := bytes.Buffer{}
hostsBuf := bytes.Buffer{}
defer config.StubWriteConfig(&mainBuf, &hostsBuf)()
@ -401,7 +414,7 @@ func TestShellAlias_bang(t *testing.T) {
t.Fatalf("unexpected error: %s", err)
}
test.ExpectLines(t, output.String(), "Adding alias for igrep")
test.ExpectLines(t, output.Stderr(), "Adding alias for.*igrep")
expected := `aliases:
igrep: '!gh issue list | grep'
`