summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/prompt/main.go6
-rw-r--r--pkg/prompt/misc.go13
2 files changed, 17 insertions, 2 deletions
diff --git a/pkg/prompt/main.go b/pkg/prompt/main.go
index e5096e8..419b704 100644
--- a/pkg/prompt/main.go
+++ b/pkg/prompt/main.go
@@ -30,7 +30,7 @@ import (
//Exec executes the prettyprompt applet and returns an exit code (0 for
//success, >0 for error).
-func Exec() int {
+func Exec(args []string) int {
fields := []string{
getLoginField(),
}
@@ -39,6 +39,10 @@ func Exec() int {
fields = appendUnlessEmpty(fields, getDeletedMessageField(cwd))
fields = appendUnlessEmpty(fields, getRepoStatusField(cwd.RepoRootPath))
fields = appendUnlessEmpty(fields, getTerminalField())
+ //this field should always be last
+ if len(args) > 0 {
+ fields = appendUnlessEmpty(fields, getExitCodeField(args[0]))
+ }
line := strings.Join(fields, " ")
lineWidth := getPrintableLength(line)
diff --git a/pkg/prompt/misc.go b/pkg/prompt/misc.go
index eaa1848..124015a 100644
--- a/pkg/prompt/misc.go
+++ b/pkg/prompt/misc.go
@@ -18,7 +18,10 @@
package prompt
-import "os"
+import (
+ "os"
+ "strconv"
+)
func getTerminalField() string {
termName := os.Getenv("TERM")
@@ -30,3 +33,11 @@ func getTerminalField() string {
}
return withType("term", termName)
}
+
+func getExitCodeField(arg string) string {
+ exitCode, err := strconv.Atoi(arg)
+ if err == nil && exitCode > 0 {
+ return withColor("1;31", "exit:"+arg)
+ }
+ return ""
+}