summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/init.rs11
-rw-r--r--src/modules/jobs.rs1
2 files changed, 9 insertions, 3 deletions
diff --git a/src/init.rs b/src/init.rs
index a80dcd5ca..16d466df2 100644
--- a/src/init.rs
+++ b/src/init.rs
@@ -54,11 +54,16 @@ pub fn init(shell_name: &str) {
/* Bash does not currently support command durations (see issue #124) for details
https://github.com/starship/starship/issues/124
+
+We need to quote the output of `$(jobs -p | wc -l)` since MacOS `wc` leaves
+giant spaces in front of the number (e.g. " 3"), which messes up the
+word-splitting. Instead, quote the whole thing, then let Rust do the whitespace
+trimming within the jobs module.
*/
const BASH_INIT: &str = r##"
starship_precmd() {
- PS1="$(starship prompt --status=$? --jobs=$(jobs -p | wc -l))";
+ PS1="$(starship prompt --status=$? --jobs="$(jobs -p | wc -l)")";
};
PROMPT_COMMAND=starship_precmd;
"##;
@@ -83,10 +88,10 @@ starship_precmd() {
if [[ $STARSHIP_START_TIME ]]; then
STARSHIP_END_TIME="$(date +%s)";
STARSHIP_DURATION=$((STARSHIP_END_TIME - STARSHIP_START_TIME));
- PROMPT="$(starship prompt --status=$STATUS --cmd-duration=$STARSHIP_DURATION --jobs=$(jobs | wc -l))";
+ PROMPT="$(starship prompt --status=$STATUS --cmd-duration=$STARSHIP_DURATION --jobs="$(jobs | wc -l)")";
unset STARSHIP_START_TIME;
else
- PROMPT="$(starship prompt --status=$STATUS --jobs=$(jobs | wc -l))";
+ PROMPT="$(starship prompt --status=$STATUS --jobs="$(jobs | wc -l)")";
fi
};
starship_preexec(){
diff --git a/src/modules/jobs.rs b/src/modules/jobs.rs
index 4a89a1af3..649c2f8b0 100644
--- a/src/modules/jobs.rs
+++ b/src/modules/jobs.rs
@@ -17,6 +17,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
let num_of_jobs = arguments
.value_of("jobs")
.unwrap_or("0")
+ .trim()
.parse::<i64>()
.ok()?;
if num_of_jobs == 0 {