Commit Graph

1098 Commits

Author SHA1 Message Date
Tilmann Meyer 2233683410
feat: add error messaging (#1576)
This creates a custom logger for the log crate which logs everything to a file (/tmp/starship/session_$STARSHIP_SESSION_KEY.log) and it logs everything above Warn to stderr, but only if the log file does not contain the line that should be logged resulting in an error or warning to be only logged at the first starship invocation after opening the shell.
2020-09-28 16:38:50 -04:00
Matan Kushner 3c668e6e6a
doc: small doc fixups 2020-09-28 12:38:14 -04:00
dependabot-preview[bot] e5bf405a73 build(deps): bump chrono from 0.4.15 to 0.4.18
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.15 to 0.4.18.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.15...v0.4.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-28 06:54:53 +00:00
dependabot-preview[bot] b6b05ed05f build(deps): bump quick-xml from 0.18.1 to 0.19.0
Bumps [quick-xml](https://github.com/tafia/quick-xml) from 0.18.1 to 0.19.0.
- [Release notes](https://github.com/tafia/quick-xml/releases)
- [Changelog](https://github.com/tafia/quick-xml/blob/master/Changelog.md)
- [Commits](https://github.com/tafia/quick-xml/compare/v0.18.1...v0.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-28 05:39:52 +00:00
Thomas O'Donnell 7b09c86b0f
docs(git_status): Update git_status module docs (#1667)
* docs: Update git_status module docs

Have updated the configuration docs for the `git_status` to remove a
non-existing option and to add an example for how to achieve the same
effect as with the new format strings.

* Add git_status changes to migration guide

Have added the change to the sync count to the migration guide. I also
corrected a few typos in the configuration.
2020-09-26 19:15:52 +02:00
Jan Katins c93bd7b705
fix: actually disable per default disabled modules (#1677)
The default `disabled: true` is actually only available within the module (when the config struct is used and not the user toml) but not all (the hg_branch) modules checked it there again.

Document this in all places and add the check (+ test) to the hg_branch module.
2020-09-26 09:35:41 +02:00
Jan Katins ffb1345052
feat(status): add the status module (#1651)
* add the exit code module

this allows to display more precisely the last command exit code
and to configure starship to not change the last charcter of the
prompt even in case of failure. It is disabled by default, because
it seems a bit redundant with the character module in its default
configuration.

* rename exit_code module to status

* Enforce a default disabled=true 

In the outer places, we only check for the disabled flag in the config toml file, only when this is loaded into the real config struct, we see the default. And if the default is true, we have to abort at that place. For status and hg_branch that wasn't so. I also commented the rest

* fix spaces in markdown table for status module

* Add a tip that status module is disabled by default

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>

* Remove unrelated changes for default disabled=true

Co-authored-by: Gaëtan Lehmann <gaetan.lehmann@gmail.com>
Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2020-09-26 00:04:51 +02:00
Matan Kushner 17687be1cb
docs: add a migration guide for the format string changes (#1624)
* Start writing migration guide

* Add prefix/suffix migration to guide

* Update docs/migrating-to-0.45.0/README.md

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>

* Update docs/migrating-to-0.45.0/README.md

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>

* Add missing quote

* Detail the modules affected by the change

* Document character and time migration

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2020-09-22 15:48:37 -04:00
Tilmann Meyer a245d54cdb
fix(git-state): Fix discrepancy between v0.44.0 and master (#1672) 2020-09-21 15:17:06 -04:00
Jan Katins 6426bbe3e4
feat: Add timings subcommand (#1629)
* feat: Add computational duration to all computed modules

This also means that in case we do some computations and these end up empty, we submit an empty module

* feat: Add timings subcommand

This outputs the timings of all computed modules, sorted by the duration it took to compute the module.

Useful for debugging why the prompt takes so long.

* feat: Add timings to explain output

* fix: Ensure that even empty custom modules get timings

* format main.rs

* feat: Only show interesting timings

* fix(tests): Change tests to look for empty string instead of None

* Use proper wording in timings help

* Revert "fix(tests): Change tests to look for empty string instead of None"

This reverts commit aca5bd1b03c48e1dee1b7ca91d66e2bda2d5a97c.

* fix(tests): Returning None in case the module produced an empty string

* fix: Ensure that linebreaks (and space) make a module not-empty

* Make cargo clippy happy

* Make Module.duration a proper Duration

* Only return a module if we would report it

* Change to cleaner way to return None for empty modules

* Avoid unnecessary module creation

* Simplify a string comparison

* Add timings to trace

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2020-09-21 19:06:15 +02:00
Thomas O'Donnell bb324834a5
fix: restore the `pyenv_prefix` option to python (#1668)
Have restored the `pyenv_prefix` option to the python module. This is
added as a new variable that will only be shown if `pyenv` is being used
to determine the version of python that is being used.
2020-09-21 11:48:26 -04:00
Thomas O'Donnell ecd3d6e9f0
docs: update clippy command in the CONTRIBUTING.md (#1665)
Have updated the clippy command in the CONTRIBUTING.md to match the one
that is used by the CI system.
2020-09-20 18:02:24 +02:00
Andrew c22ea6d889
style: make rustfmt use the default configuration (#1661)
by adding an empty `rustfmt.toml` configuration file, thus allowing
users who have their own configuration to contribute without friction.
2020-09-19 08:45:17 +02:00
dependabot-preview[bot] 26e4de710e build(deps): bump sysinfo from 0.15.1 to 0.15.2
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.15.1 to 0.15.2.
- [Release notes](https://github.com/GuillaumeGomez/sysinfo/releases)
- [Commits](https://github.com/GuillaumeGomez/sysinfo/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-17 06:24:06 +00:00
dependabot-preview[bot] 4fc0de4201 build(deps): bump git2 from 0.13.10 to 0.13.11
Bumps [git2](https://github.com/rust-lang/git2-rs) from 0.13.10 to 0.13.11.
- [Release notes](https://github.com/rust-lang/git2-rs/releases)
- [Commits](https://github.com/rust-lang/git2-rs/commits/0.13.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-14 06:54:44 +00:00
David Knaack 6186e296ac
fix(zsh): work when `setopt ksh_arrays` is set (#1612) 2020-09-14 08:30:57 +02:00
Joshua Poehls 2996220568
fix(pwsh): update init script to propagate $LASTEXITCODE and $?
Previously the prompt function used in PowerShell would overwrite the $LASTEXITCODE and $? automatic variables that were set by the previous command run the user in the shell. This results in surprising behavior for the user if they inspect those variables looking for the result of the command they last ran.

This fixes the bug reported here: https://github.com/starship/starship/issues/1051
And goes further to also propagate the $? automatic variable which is not mentioned in that bug.
2020-09-09 11:52:30 -04:00
Matan Kushner d3100c5c82
fix: use suffixes for modules before directory (#1645)
Previously, all modules would have prefixes, which lead to the first
module having a dangling prefix. This change ensures that the first
few modules would instead have suffixes so that we don't start or
end with a prefix or suffix.
2020-09-08 12:09:21 -04:00
Jan Katins 17e8115f16
docs: Improvements in docs for custom modules (#1615)
* docs: Clarify that commands will be passed in on stdin

* docs: Clearer instruction how to include individual custom modules

* docs: Include link to #1252 in docs for custom modules

That issue is used to share custom modules.

* docs: Remove reference to prompt_order

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2020-09-01 19:07:12 +02:00
dependabot-preview[bot] 567ea8d2be build(deps): bump battery from 0.7.5 to 0.7.6
Bumps [battery](https://github.com/svartalf/rust-battery) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/svartalf/rust-battery/releases)
- [Changelog](https://github.com/svartalf/rust-battery/blob/master/CHANGELOG.md)
- [Commits](https://github.com/svartalf/rust-battery/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-26 05:41:46 +00:00
dependabot-preview[bot] 6f347b71ed
build(deps-dev): bump @vuepress/plugin-google-analytics in /docs (#1613)
Bumps [@vuepress/plugin-google-analytics](https://github.com/vuejs/vuepress/tree/HEAD/packages/@vuepress/plugin-google-analytics) from 1.5.3 to 1.5.4.
- [Release notes](https://github.com/vuejs/vuepress/releases)
- [Changelog](https://github.com/vuejs/vuepress/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuepress/commits/v1.5.4/packages/@vuepress/plugin-google-analytics)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-25 10:50:57 -04:00
dependabot-preview[bot] 7ff9dd3d84 build(deps): bump rayon from 1.3.1 to 1.4.0
Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.3.1 to 1.4.0.
- [Release notes](https://github.com/rayon-rs/rayon/releases)
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md)
- [Commits](https://github.com/rayon-rs/rayon/compare/v1.3.1...rayon-core-v1.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-25 05:32:58 +00:00
dependabot-preview[bot] 30dfed812b
build(deps-dev): bump vuepress from 1.5.3 to 1.5.4 in /docs (#1614)
Bumps [vuepress](https://github.com/vuejs/vuepress/tree/HEAD/packages/vuepress) from 1.5.3 to 1.5.4.
- [Release notes](https://github.com/vuejs/vuepress/releases)
- [Changelog](https://github.com/vuejs/vuepress/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuepress/commits/v1.5.4/packages/vuepress)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-25 00:23:01 -04:00
Dario Vladović faba2d104d
fix(test): do NOT quote argument values for mocked invocations (#1527)
Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2020-08-24 19:05:43 +02:00
dependabot-preview[bot] 46a51d7941
build(deps-dev): bump @vuepress/plugin-google-analytics in /docs (#1571)
Bumps [@vuepress/plugin-google-analytics](https://github.com/vuejs/vuepress/tree/HEAD/packages/@vuepress/plugin-google-analytics) from 1.5.2 to 1.5.3.
- [Release notes](https://github.com/vuejs/vuepress/releases)
- [Changelog](https://github.com/vuejs/vuepress/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuepress/commits/v1.5.3/packages/@vuepress/plugin-google-analytics)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-21 21:02:34 -04:00
dependabot-preview[bot] 2f5d795546
build(deps): bump git2 from 0.13.8 to 0.13.10 (#1606)
Bumps [git2](https://github.com/rust-lang/git2-rs) from 0.13.8 to 0.13.10.
- [Release notes](https://github.com/rust-lang/git2-rs/releases)
- [Commits](https://github.com/rust-lang/git2-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-21 21:02:19 -04:00
jRimbault 12c7877932
fix: $EDITOR argument parsing (#1595)
Fixed editor argument parsing by properly splitting
whitespace with the same procedure used by shell.
2020-08-21 11:41:36 -05:00
David Knaack d4515696a4
fix(pwsh): stop paths from being interpreted as patterns (#1569)
Convert-Path in the powershell prompt script works with -Path,
which interprets paths as wildcard patterns.  

Not all valid paths are also valid wildcard patterns, possibly causing
the prompt to error (eg []*).  

Replace it with -LiteralPath that makes Convert-Path use the path as-is.
2020-08-19 23:45:10 -05:00
Matan Kushner 09672eeea7
fix: re-add add_newline to root config (#1598) 2020-08-18 18:58:29 +02:00
dependabot-preview[bot] 8c48e0f707 build(deps): bump once_cell from 1.4.0 to 1.4.1
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.4.0...v1.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-18 06:35:00 +00:00
Matan Kushner 1cd4f12bb4
Revert "fix: restore add_newline configuration (#1592)" (#1596) 2020-08-17 12:30:01 -04:00
dependabot-preview[bot] 73e6c69637 build(deps): bump chrono from 0.4.13 to 0.4.15
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.13 to 0.4.15.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.13...v0.4.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-17 10:20:18 +00:00
Matan Kushner 1652c0bdb1
fix: restore add_newline configuration (#1592) 2020-08-16 23:33:40 -04:00
Tilmann Meyer bcdf522af5
chore: remove unused name from Segment and remove some of the misleading underscores (#1584)
* chore: Remove unused name from Segment and remove some of the misleading underscores

* chore: Access members of `Segment` directly
2020-08-16 22:16:05 -04:00
Thomas O'Donnell 2e14d1af5a
fix(install): switch to install the musl binaries by default (#1590)
We have had a few issues where users haave run the install script and
have ended up with a non-functioning version of starship because their
system doesn't have a required lib that we link against. To avoid these
problems it seems the easiest solution is to default to using the
statically compiled musl binaries. If a user knows that they are doing
they can use the non-statically compiled binaries by supplying the `-p`
argument to the installer. Note this is what other rust based tools such
as ripgrep do.
2020-08-16 11:30:10 -04:00
dependabot-preview[bot] f219d310cf build(deps): bump sysinfo from 0.15.0 to 0.15.1
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.15.0 to 0.15.1.
- [Release notes](https://github.com/GuillaumeGomez/sysinfo/releases)
- [Commits](https://github.com/GuillaumeGomez/sysinfo/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-16 10:12:26 +00:00
dependabot-preview[bot] a50ef1d273 build(deps): bump clap from 2.33.2 to 2.33.3
Bumps [clap](https://github.com/clap-rs/clap) from 2.33.2 to 2.33.3.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-15 09:40:56 +00:00
Emanuele Aina 5ce4322a2c
docs: Drop inexistent "number" variable from hostname section (#1586)
The hostname module does not provide any "number" variable, its presence
in the documentation is likely due to some copy&paste from the jobs
module section, so let's drop it.

Signed-off-by: Emanuele Aina <em@nerd.ocracy.org>
2020-08-15 11:02:20 +02:00
Martin Åkesson c0b6e97f57
fix(git_state): panic on interactive rebase (#1552) 2020-08-14 19:09:01 +02:00
David Knaack 0912ed0058
fix(test/dir): make lock thread-safe (#1575)
* fix(test/dir): make lock thread-safe

* stronger ordering
2020-08-14 18:58:53 +02:00
Marc Schreiber 8c71eb5307
feat: Add Undistract Me Feature (#1019)
Often it is handy to get notified when the execution of a command finished.
This commit includes notify-rust in order to generate a desktop notification
when a command execution finished.
2020-08-11 18:44:25 +02:00
dependabot-preview[bot] 93c568e118
build(deps-dev): bump vuepress from 1.5.2 to 1.5.3 in /docs (#1572)
Bumps [vuepress](https://github.com/vuejs/vuepress/tree/HEAD/packages/vuepress) from 1.5.2 to 1.5.3.
- [Release notes](https://github.com/vuejs/vuepress/releases)
- [Changelog](https://github.com/vuejs/vuepress/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuepress/commits/v1.5.3/packages/vuepress)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-11 12:29:51 -04:00
dependabot-preview[bot] b79830e97b build(deps): bump os_info from 2.0.7 to 2.0.8
Bumps [os_info](https://github.com/darkeld3r/os_info) from 2.0.7 to 2.0.8.
- [Release notes](https://github.com/darkeld3r/os_info/releases)
- [Changelog](https://github.com/DarkEld3r/os_info/blob/master/CHANGELOG.md)
- [Commits](https://github.com/darkeld3r/os_info/compare/v2.0.7...v2.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-10 06:40:28 +00:00
dependabot-preview[bot] 996e7ddeb5
build(deps): [security] bump prismjs from 1.20.0 to 1.21.0 in /docs (#1566)
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.20.0 to 1.21.0. **This update includes a security fix.**
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.20.0...v1.21.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-08-08 12:19:16 -04:00
Tilmann Meyer 88b603be38
test: introduce env variable mocking (#1490) 2020-08-07 15:13:12 -04:00
David Knaack 8b0f589486
fix(explain): align table correctly (#1482)
* fix(explain): align table correctly

* iterate over lines directly

* calculate desc_width with the actual space available

* custom unicode-aware textwrapping

* fix clippy error

* better width estimination

* explain +6

* move padding width into a constant
2020-08-05 19:16:59 +02:00
Daniel A. White 0be9ffc0a1
feat(shlvl): Add shlvl module (#1385)
* initial commit of support for shlvl

* documentation for shlvl

* use a symbol instead

* test coverage for shlvl

* actually disable when the config says to

* fix docs

* tweak defaults some

* refactor from pr comments

* redisable

* return early to avoid indenting

* make default suffix empty space

* fixing tests after suffix change

* updating docs for format

* making shlvl compatible with formatting

* adding variables table for shlvl

* removing extra line

* doc clarity
2020-08-05 18:30:01 +02:00
Stéphane Benoit c07b798046
docs: Add perl official logo in NerdFont (#1558) 2020-08-04 23:15:58 +02:00
Stéphane Benoit ef55042f2e
feat(perl): Added perl version module (#1382)
Adds a module for perl support.
2020-08-04 11:22:44 -05:00
Takahiro Tsuruda c5f2eedf07
feat: Add gcloud module (#1493)
* feat(gcloud): Add document of gcloud module

Signed-off-by: dulltz <isrgnoe@gmail.com>

* feat(gcloud): Add gcloud module

Signed-off-by: dulltz <isrgnoe@gmail.com>

* feat(gcloud): Add test for gcloud module

Signed-off-by: dulltz <isrgnoe@gmail.com>

* Apply the comment

https://github.com/starship/starship/pull/1493\#discussion_r456965413
Signed-off-by: dulltz <isrgnoe@gmail.com>
2020-08-03 23:30:20 +02:00