1
0
mirror of https://github.com/Llewellynvdm/starship.git synced 2024-12-11 05:42:21 +00:00
Commit Graph

934 Commits

Author SHA1 Message Date
David Knaack
b5d3d8fcf3
feat(schema): deny unknown keys (#4270) 2022-09-09 14:59:38 +02:00
Rashil Gandhi
06281c268d
feat(fish): Enable left and right transience (#4204)
* feat(fish): Enable left and right transience

* Update README.md

* Mention limitation
2022-09-09 14:56:33 +02:00
David Knaack
fd5539796f
fix(pwsh): avoid potential deadlock in init (#4335) 2022-09-08 23:18:50 +02:00
David Knaack
6ac5df904b
refactor: replace ansi_term with nu_ansi_term (#4339) 2022-09-04 18:44:54 +02:00
David Knaack
c40f0e7722
build: bump quick-xml from 0.23.0 to 0.24.0 (#4322)
* build: bump quick-xml from 0.23.0 to 0.24.0

Bumps [quick-xml](https://github.com/tafia/quick-xml) from 0.23.0 to 0.24.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.23.0...v0.24.0)

---
updated-dependencies:
- dependency-name: quick-xml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* switch to updated apis

* run cargo update

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-30 22:36:44 +02:00
Sebastian Thiel
dd918296e4
build: gitoxide upgrade (#4319)
adjustments to upgrade to gitoxide v0.22.1
2022-08-27 14:24:18 +02:00
David Knaack
5984f0829e
perf(git_commit): only use exact match for tag by default (#4281) 2022-08-19 08:27:41 +02:00
David Knaack
98089bf005
chore(git): improve logging (#4273) 2022-08-18 07:25:11 +01:00
Sebastian Thiel
f52ae552d3
fix(git): upgrade gitoxide to v0.21 (#4277)
* upgrade `gitoxide` to v0.21

This release comes with lenient configuration handling by default,
allowing to open repositories even their configuration values are
invalid (even for git), as long as there are viable defaults.

Furthermore this release adds the ability to open submodule repsitories.

Fixes https://github.com/starship/starship/issues/4266 and
fixes https://github.com/starship/starship/issues/4272

* Assure an object cache is set to speed up `commit.describe()`

Related to https://github.com/starship/starship/issues/4275 bringing
performance to spitting distance compared to git.
2022-08-18 07:22:51 +01:00
David Knaack
1390036882
fix(aws): support official AWS_SHARED_CREDENTIALS_FILE variable (#4242)
* fix(aws): use AWS_SHARED_CREDENTIALS_FILE instead

Signed-off-by: Ismayil Mirzali <ismayilmirzeli@gmail.com>

* fix tests & keep support for older variant

Signed-off-by: Ismayil Mirzali <ismayilmirzeli@gmail.com>
Co-authored-by: Ismayil Mirzali <ismayilmirzeli@gmail.com>
2022-08-11 07:48:22 +02:00
David Knaack
ac55a01d0f
feat(git): replace git2 with git-repository (#3883) 2022-08-08 22:33:00 -04:00
Artyom Belousov
c8a5adb412
feat: Add starship preset command (#4112)
* Add starship preset command

* Use ValueEnum for preset command

* Generate ValueEnum struct in build.rs

* Use absolute paths and refactor codegen

* Use dunce to canonicalize path

* Use raw string literal in include_bytes!

* Use .cloned()

* Apply fixes

* Fix path escaping

* Removed error message if stdout is unavailable

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-08-02 11:51:15 +02:00
David Knaack
85692d1bf6
feat: add bun module (#4187) 2022-08-01 12:59:36 +02:00
Davin K. Tanabe
aaab920f88
feat: Add support for blink, hidden, and strikethrough styles. (#4138)
Add support for blink, hidden, and strikethrough styles.
2022-07-31 16:30:34 +02:00
David Cantrell
dd73447329
feat: Add the ability to have some file extensions *prevent* a module from triggering (#4043)
* test that we can match a multi-part file extension such as in foo.tar.gz

* now we can match multi-part file extensions like on foo.tar.gz

* add a test that a !ext is a negative match and over-rides any positive match

* test that negative extensions that don't match any file have no effect

* fail the match if any negative extensions exist

* cargo fmt

I'm not happy with this, in particular it's made the structures of has_any_positive_extension and has_no_negative_extension look different, and the logic in is_match is harder to follow

* placate clippy

* documentation for multi-part extensions and negative extensions

* get rid of an unnecessary .to_string() and comment the necessary but weird-looking invocations of .to_string_lossy().to_string()

* tests for negative matching of files and folders

* fail the match is any negative files/folders match

* document file/folder negative matching; be less prolix

* suppress Nodejs if Deno files are present (#2627)

* Revert "suppress Nodejs if Deno files are present (#2627)"

This reverts commit c1394fd7b37bb0bf06b1449e074020a2e16bfa04.

This was a terrible way of doing this, there's got to be a better way!
2022-07-31 16:29:48 +02:00
Rashil Gandhi
6e9c013e60
feat: Enable transience for Cmd and PowerShell (#4143) 2022-07-24 21:10:40 -05:00
David Knaack
0a1235e279
feat(package): support cargo workspace versions (#4161) 2022-07-20 11:17:27 +02:00
David Knaack
d8ac940098
perf(rust): avoid calling rustup in more conditions (#4174) 2022-07-20 11:15:46 +02:00
Artyom Belousov
61438484bd
feat(status): Add pipestatus_segment_format option to status module (#4103)
Add pipestatus_segment_format
2022-07-19 15:07:50 +02:00
filip
f56955084b
build: bump path-slash from 0.1.4 to 0.2.0 (#4155)
* build: bump path-slash from 0.1.4 to 0.2.0

Bumps [path-slash](https://github.com/rhysd/path-slash) from 0.1.4 to 0.2.0.
- [Release notes](https://github.com/rhysd/path-slash/releases)
- [Changelog](https://github.com/rhysd/path-slash/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rhysd/path-slash/compare/v0.1.4...v0.2.0)

---
updated-dependencies:
- dependency-name: path-slash
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* fix errors in code after path-slash bump to 0.2.0

* fmt

* refactor contract_path to return Cow<str>

* update contract_windows_style_root_directory test

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-12 11:31:43 +02:00
Thomas O'Donnell
5c5969c50b
feat(k8s): Add folder detection to the k8s module. (#4157)
Have added configuration options to the k8s module to allow activating
the module only in directories that contains certain files or folders.
To ensure this is backwards compatible and because there are not really
any standard files or folders for Kubernetes I have set the defaults to
empty and will activate the module for all directories.
2022-07-10 11:14:54 +02:00
David Knaack
af15de93c4
perf(pulumi): allow disabling upwards discovery (#4159)
* perf(pulumi): disable upwards discovery by default

* change `search_upwards` default to `true`
2022-07-10 11:14:43 +02:00
Jan Larres
aae1ed04ba
fix(timings): count time spent on custom on 'when' command failure (#4121)
Count time spent on custom 'when' commands
2022-07-08 16:38:26 +02:00
David Knaack
eb67534ac9
chore: fix new clippy lints (#4136) 2022-06-30 16:18:29 -04:00
Kian-Meng Ang
018b077630
chore: fix typos in comments (#4122) 2022-06-28 14:19:17 -04:00
David Knaack
277a7cc740
build: bump windows from 0.37.0 to 0.38.0 (#4105)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-26 18:27:45 -04:00
Filip Sergot
1a4fac63f7
feat: add Raku module (#4048)
* feat: add Raku module

* Update docs/config/README.md

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

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2022-06-26 12:00:55 +02:00
Thomas O'Donnell
67619386cd
fix(character): Standadise Vim config names (#4081)
Have switched all vi/vim symbols to have the same prefix 'vim'. To
preserve backwards compatibility with existing configs I have added an
alias for the previous config name.
2022-06-18 23:23:59 +02:00
yutotnh
e7c1976528
docs: fix some typos in comments (#4069)
fix: some typos
2022-06-15 19:55:10 -05:00
David Knaack
009eb93c83
build: bump clap crates to v3.2 (#4067) 2022-06-15 23:31:12 +02:00
David Knaack
a72b4638f3
docs(aws): improve legibility (#4050) 2022-06-12 13:27:19 +02:00
Mat Jones
146976351e
fix(fish): add proper vi mode detection for fish shell (#3839)
* add proper vi mode detection for fish shell

* update tests

* fix test

* update config-schema.json

* update docs

* add warning about symbols only supported in fish
2022-06-04 12:41:24 +02:00
Tyler Ruckinger
9b52475e54
fix(nu): don't use cygpath for starship binary path in init (#4001)
nu on windows need not be posix
2022-06-02 23:46:46 +02:00
Tobi
df5c2d8836
feat(kubernetes): add user alias (#4008)
* add kubernetes user alias (fixes #3870)

* update config schema

* sort config property alphabetically

* Update README.md

* add test-case for non-matching alias
2022-05-30 20:09:53 +02:00
David Knaack
2039931d85
refactor(memory_usage): replace sys-info with systemstat (#4028) 2022-05-29 16:47:06 +02:00
David Knaack
7d31bac1cc
fix: escape text segments in meta variables (#3563) 2022-05-27 12:36:37 -05:00
Stefano Baghino
3fe6cc023c
feat: Add support for Daml (#4004) 2022-05-26 16:42:31 +02:00
David Knaack
0ae61c7758
chore(clippy): fix new lints (#4002) 2022-05-23 06:58:27 -04:00
Arya Adarsha Gautam
9ebfce1e36
feat(go): check for go.work file to show Go module in prompt (#3968)
* check for go.work file to display go version

* add test to check for go.work file

* update docs to include go.work file

* chore(dprint): fmt & upgrade plugins (#3969)

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-05-07 08:04:37 +02:00
Noa
81a696a914
fix: Use git2::Repository::open_ext() instead of discover() (#3591)
This lets starship respect the $GIT_CEILING_DIRECTORIES env var.
2022-05-05 11:43:03 -05:00
Kevin Song
393d62c726
feat(rust): Display toolchain names (#3414)
This is an actualization of PR #559 as originally envisioned by qryxip.

Adds the ability to display toolchain versions, either as extracted from
environment/settings files or by getting the host triple. As part of
this, several other major changes were needed:
- Many of the smaller functions within the code have been fused, moved,
  or dropped.
- The Rustup environmental info is now initialized lazily using
  OnceCells. This will hopefully lead to a performance increase.
- New configuration variables (`toolchain` and `numver`) have been added
  to allow finer-grained configuration.
- Override information is no longer read from `rustup` output. Instead,
  it is parsed from the same files that rustup would use to determine
  this info.

Co-authored-by: qryxip <qryxip@gmail.com>

Co-authored-by: qryxip <qryxip@gmail.com>
2022-05-04 15:40:44 -05:00
Thanapat Chotipun
2bf30dc89f
feat(hostname): add ssh_symbol for ssh connections (#3806) 2022-05-04 15:30:16 +02:00
David Knaack
c768d039d1
test(custom): increase timeout in timeout test (#3960) 2022-05-02 21:01:43 -05:00
Tom Fleet
1b938fd484
feat(package): Extract package version from PEP 621 compliant pyproject.toml (#3950)
* feat(package): Extract package version from PEP621 pyproject.toml

* Update docs explaining PEP 621 package version

* Only read pyproject.toml once

* Simplify get_pep621_version

* Handle version formatting in get_pyproject_version
2022-05-02 18:44:01 +02:00
Kevin Song
2e80aec5cb
fix: Do not panic in config if editor not found (#3766)
* fix: Do not panic in config if editor not found

* Add tests for edit_configuration

Adds tests for no-panic condition on editor by adding an override to
edit_configuration.

* Sorry clippy :(
2022-05-02 18:43:27 +02:00
Gabe Weiner
6fe6735927
fix(module): list option not working (#3919) 2022-04-28 22:27:09 +02:00
David Knaack
bd7957f01c
fix(git_branch): correct variable name for remote branch (#3897) 2022-04-26 20:02:01 +02:00
David Knaack
d4d84a592c
build: bump nix from 0.23.1 to 0.24.1 (#3925)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-26 09:14:51 -04:00
Thomas O'Donnell
2a650bfd14
perf(package): only try to read files that exist (#3904)
* perf(package): only try to read files that exist

Have refactored the package module to improve performance. Before this
change the module would try to open every single file that could contain
some package information until it found a valid version. This resulted
in a lot of unneeded disk IO. Have added a new fn, `read_file_from_pwd`
that uses the current context to check if that file already exists and
fast failing if it doesn't. From my local testing this speeds up the
package module from taking ~1ms to ~50µs in an empty directory.

* refactor: move read_file_from_pwd to context

* refactor(haskell): use read_files_from_pwd

* refactor(nodejs): use read_files_from_pwd
2022-04-25 16:18:01 +02:00
David Knaack
6c2b51a621
refactor(windows): replace winapi with windows (#3690) 2022-04-21 20:59:00 +02:00
Fábio Antunes
6def45b751
chore(aws): adds space to the duration variable (#3872) 2022-04-21 20:58:06 +02:00
David Knaack
ff490b67ad
test(git): enable fsync for git operations (#3889)
* test(git): enable `fsync` for git operations

* add comment
2022-04-20 18:39:24 +01:00
Yt
efaab49e47
feat(cmd_duration): make notify feature optional (compat with nix darwin) (#3855) 2022-04-12 12:07:36 +02:00
David Knaack
28da85061b
refactor(custom): various improvements (#3829) 2022-04-09 11:32:45 -04:00
David Knaack
21dfe7f2fc
refactor(aws): improve parsing of config files (#3842) 2022-04-08 06:56:14 +02:00
David Knaack
4b7275efc4
refactor(gcloud): improve parsing of config files (#3844) 2022-04-08 06:56:02 +02:00
Thomas Kintscher
230e85be37
fix(docker_context): ignore the "default" context (#3803) (#3804)
Co-authored-by: Thomas Kintscher <thomas@flowciety.de>
2022-04-07 07:54:50 +02:00
t-mangoe
441ebb39b9
fix(directory): enable repo_root_style when truncation_length is zero. (#3536)
* Update merge-dependabot.yml

* Revert "Update merge-dependabot.yml"

This reverts commit b13a329660cc1f6fe57b29bc488764181a2ba66c.

* Update merge-dependabot.yml

* Revert "Update merge-dependabot.yml"

This reverts commit b13a329660cc1f6fe57b29bc488764181a2ba66c.

* fix(directory): enable repo_root_style when truncation_length is zero.

* run dprint fmt

* fix README

* fix README

* revert README.md
2022-04-04 21:13:29 +02:00
Hofer-Julian
2608db3a38
fix(nu): Use = instead of space to pass command line parameters (#3833)
This fixes https://github.com/nushell/nushell/issues/5074
2022-04-04 20:03:43 +02:00
David Knaack
03343272b7
fix(bash): ensure checkwinsize is enabled for $COLUMNS (#3832) 2022-04-03 15:07:19 -04:00
oyanoya
3014284e95
feat(spack): Add Spack module (#3639)
* feat/add readme + presets

* feat/add spack module

* feat/add spack config

* feat/spack to handle

* feat/add spack to modules and root

* fix/readme formattign

* fix/readme typo

* fix/readme formatting

* feat/replace module_config_derive with serde

* feat/add macros to generate schema + schema
2022-04-03 15:33:14 +02:00
Rashil Gandhi
c89c13038a
feat(username): Detect Admin access in Windows (#2791)
* Detect Admin access in Windows

* Update username doc

* Do not run tests when elevated

* Add comment

* Try fixing tests

* use deelevate crate

* simplify cfg

* Update src/modules/username.rs

Fix rookie mistake

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* handle errors

* fix lockfile error

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-04-01 17:47:49 +02:00
David Knaack
18ad26f98d
feat: allow printing config file schema (#3737) 2022-04-01 17:14:05 +02:00
David Knaack
859b780b46
fix(nu): use shell-provided terminal width (#3800) 2022-03-28 13:40:06 -04:00
David Knaack
2d4b183fce
refactor: replace module_config_derive with serde (#3786)
* refactor: replace module_config_derive with serde

Changes include:
* Removing `starship_module_config_derive` and replacing it with `serde::Deserialize`
* Removing `RootModuleConfig::load_config`. While potentially useful, it was only used in tests. And it would require something like `serde::DeserializeSeed` which is not derived by serde.
* Merging `RootModuleConfig` into `ModuleConfig`
* Implementing a `ValueDeserializer` that holds a reference to a `toml::Value` in `serde_utils.rs`
* Deserialization errors (invalid type) are now logged and include the current key and the struct names
* Unknown keys are now considered an error. "Did you mean?"-messages are still possible

* fix typo

Co-authored-by: Matan Kushner <hello@matchai.dev>

Co-authored-by: Matan Kushner <hello@matchai.dev>
2022-03-26 10:42:19 +01:00
tani
0fb4219690
fix(fish): allow generating session keys in older versions of fish (#3697)
* fix(linux): session key generation in fish

* fix(fish): use string sub commands for the compatibility

* fix(fish): add comment
2022-03-26 10:34:46 +01:00
Alex Douze
e04f126a10
feat(aws): add option to force AWS display (#3720)
* add option to force AWS display

Even if no credentials or credential_process have been setup

* change README wording

* Include sso_start_url in the description

* Change option name to force_display
2022-03-25 22:30:36 +01:00
Kevin Song
538329d9b4
fix(init): Change Elvish init to catch for 0.18 (#3769) 2022-03-25 11:57:38 +01:00
David Cantrell
0863146f07
feat: Add a module for C projects (#3631)
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-03-25 00:10:19 -04:00
David Knaack
c9b75fe115
fix(init): Change Nushell init for nu 0.60 (#3773) 2022-03-24 15:06:24 -04:00
David Knaack
8d3bffdb6c
build: bump shadow to 0.10.0 & git2 to 0.14.2 (#3767) 2022-03-19 21:01:57 -04:00
ksqsf
72fec559c5
feat(haskell): Add Haskell module (#3587)
* feat(haskell): add haskell module and implement ghc version detection

* feat(haskell): implement stack resolver version detection

* fix(haskell): handle more complex resolvers

* fix(haskell): rename resolver_version to snapshot

* fix(haskell): change default color to bold purple

* feat(haskell): add tests

* fix(haskell): format

* fix(haskell): replace incorrect `or` with `or_else`

* fix(haskell): use write_all instead of write

* fix(haskell): λ as Haskell icon by default

* fix(haskell): fix tests and add a real stack.yaml testcase

* fix(haskell): make clippy happy
2022-03-18 07:45:51 +01:00
David Knaack
d7308203a9
fix(aws): accept sso credentials (#3718) 2022-03-16 23:14:52 +01:00
IsaacHorvath
bae16b525d
feat(git_branch): add 'ignore_branches' option (#3753)
* git-branch: Add option 'ignore_branches'

* git-branch: add 'ignore_branches' test

* git-branch: comma-separated to toml array

* git-branch: update ignore_branches test

* git_branch: fix formatting

* git-branch: fix formatting again

* Initialize ignore_branches as empty

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

* Use iter().any and branch_name as suggested

* Fix formatting

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2022-03-16 21:41:49 +01:00
Izhak Jakov
86953272a7
fix(status): Make status module work even when the status is 0 (#3750)
Co-authored-by: Izhak Jakov <jizhak@ca.ibm.com>
2022-03-16 16:05:13 -04:00
kuno
59622bc41b
fix(aws): Make AWS_REGION orverrides AWS_DEFAULT_REGION (#3619) (#3733)
* fix(aws): Make AWS_REGION orverrides AWS_DEFAULT_REGION (#3619)

* fix(aws): Align the coding style of region and profile env var (#3619)
2022-03-14 22:49:23 +01:00
Kid
a10e24b205
feat(nodejs): check for .mts and .cts files (#3734)
* feat(nodejs): check for `.mts` and `.cts` files

* Hmm

* Tests

* Update docs

* Update table

* Align

* Remove tests

* 🤷

* 🤷🤷
2022-03-12 23:09:16 +01:00
Luc Perkins
16f62d7904
feat(buf): Add Buf module (#3661)
* Add initial Buf module logic

* Add tests for Buf module

* Add initial draft of docs

* cargo fmt

* Fix config table formatting

* Run dprint

* Run clippy --fix

* cargo fmt

* Add space after emoji

* Fix spacing discrepancy

* Switch to Nerd Font from emoji

* Fix up docs merge conflict handling

Co-authored-by: Matan Kushner <hello@matchai.dev>
2022-03-12 12:10:23 +01:00
Anders Eurenius Runvald
ac8c2fe024
feat(aws): Add profile aliases (#3699)
* Rename m.aws.alias_region to alias_name

* Add aws profile aliases

* Document aws.profile_aliases, with examples

* Add tests for new aws.profile_aliases feature

* Tidy alias_handling a bit
2022-03-12 12:08:33 +01:00
Denis Cornehl
076a9e6b8e
fix(rust): overrides should only check full segments (#3668)
Fixes a bug in the Rust module where overrides would match
against both full path components as well as partial ones
(e.g. "/etc/passwd" would be considered a prefix of 
"/etc/passwd_new") on Windows.

Solution is to convert back to a PathBuf after lossy conversion
so that Path::starts_with is used instead of str::starts_with.
2022-03-08 13:58:58 -06:00
David Knaack
d2366ddb9c
perf(git_status): add option to use windows starship to render in wsl (#2146) 2022-03-06 21:18:23 -06:00
Ikko Ashimine
71e8a47a03
chore: fix typo in main.rs (#3669)
Intialize -> Initialize
2022-02-28 11:27:33 -05:00
David Knaack
4369c92d40
perf(rayon): restrict thread count (#3667) 2022-02-27 12:37:43 -06:00
baoyachi. Aka Rust Hairy crabs
2119938692
build: bump shadow-rs from 0.8.1 to 0.9.0 (#3648) 2022-02-26 11:34:48 -05:00
David Knaack
1745392909
refactor: fix new clippy/compiler warnings (#3656) 2022-02-24 23:31:01 -05:00
David Knaack
1a8aa96b7f
fix(windows): avoid verbatim paths (#3638) 2022-02-23 18:32:35 -05:00
David Knaack
e09b821c42
build: bump clap from 3.0.14 to 3.1.0 (#3630)
* build: bump clap from 3.0.14 to 3.1.0

Bumps [clap](https://github.com/clap-rs/clap) from 3.0.14 to 3.1.0.
- [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/compare/v3.0.14...clap_complete-v3.1.0)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* refactor(clap): fix deprecation warnings

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-19 22:24:11 +01:00
zensayyy
d09f71720e
feat(kubernetes): add context user and cluster variables (#3569)
* added kubernetes context user, cluster + basic test

* updated docs

* docs format

* changed get_kube_ctx_component to return struct
2022-02-16 23:20:29 +01:00
Allan Lago
e70454956f
fix(aws): Only display AWS if there are credentials configured (#3504)
* only display aws on credential_process defined

* add check for both credential_process and valid credentials

* fix tests

* update aws module documentation

* add better explanation of requirements to documentation

* add support for AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, and update docs

* remove credential_process env var
2022-02-16 23:19:13 +01:00
cubercsl
efb16dd9ca
fix(localip): disable localip module default (#3607) 2022-02-14 09:51:29 -05:00
Kotaro Abe
32aca11c4a
Add option gcloud.project_aliases (#3599)
* feat: gcloud.project_aliases

* feat: add option gcloud.project_aliases
2022-02-14 13:16:45 +01:00
David Knaack
0ea16e2641
fix: ignore empty --jobs argument (#3593) 2022-02-14 13:12:31 +01:00
Rashil Gandhi
e9e090e97e
fix(fish): Emit clear-screen escape sequence only in left prompt (#3588) 2022-02-14 13:11:55 +01:00
Shan Zhou
465e6fc4be
fix(pwsh): Use global:error[0] for most recent error in powershell (#3584)
* Use global:error[0] for most recent error

The current version use $error[0], which is for the module instead of the global status and is always $null, so the $lastExitCodeForPrompot is always $origLastExitCode (see https://github.com/starship/starship/issues/3485 for a related bug).
It should be replaced with $global:error[0] 
Comments are also updated

* fix(pwsh): make Semantic PR bot happy
2022-02-11 12:07:50 +01:00
Jesús Lapastora
c3cc40d2ac
feat(cli): Print arguments if argument parsing fails (#3560)
* fix(#3554): Print the command line argv on clap error

This is a very bare implementation that just prints the error
and then a note with the arguments passed, it does this manually
and doesn't use clap. I've also chosen to use `Vec`'s `Debug`
implementation instead of rolling my own one because I thought it was
good enough, but there might be a better way of doing all this.

Altogether, I think this will be very useful to help in the diagnostic
of other bugs :)

* fix(#3554): Print the command line argv on clap error

This is a very bare implementation that just prints the error
and then a note with the arguments passed, it does this manually
and doesn't use clap. I've also chosen to use `Vec`'s `Debug`
implementation instead of rolling my own one because I thought it was
good enough, but there might be a better way of doing all this.

Altogether, I think this will be very useful to help in the diagnostic
of other bugs :)

EDIT: removed `dbg!`, set it to exit always.

* correctness(exit): don't print argv / exit with error on help and
version error kinds

* fix: Avoid panicking when stdout/stderr closing unexpectedly

* refactor(cli): use `use_stderr` instead of manual match for error kinds

`clap` uses `use_stderr` to reliably check whether the error given is
actually an error coming from user input or rather a hint to display
other info (version, help, etc.)

Also reworded/moved a couple of comments so that they explain better
what is the thought process behind the code
2022-02-06 23:04:28 +01:00
Coelacanthus
589576d3eb
refactor(zsh): using add-zsh-hook instead of add hook manually (#3537)
[1]: https://github.com/starship/starship/pull/3480#discussion_r790280291
[2]: https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#Writing-Themes

Signed-off-by: Coelacanthus <coelacanthus@outlook.com>
2022-02-05 22:37:34 -08:00
moko256
bbdb584f45
fix(status): Enable to convert from i64 to hex_status by casting instead of parsing status. (#3462)
* fix(status): Enable to convert from i64 to hex_status by casting instead of parsing status.

* Apply comment to src/context.rs

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* Update README.md in configuration

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-02-05 21:13:42 +01:00
Segev Finer
0b184c3ccb
feat(pwsh): Set ExtraPromptLineCount (#3439)
* feat(pwsh): Set ExtraPromptLineCount

Fixes #3419

* Rename $prompt to $promptText
2022-02-05 21:12:47 +01:00
Marlon Richert
aaf4c17122
refactor: Improve compatibility with Zsh prompt theme system (#3480)
Zsh's `promptinit` expects a theme's hook functions to be named `prompt_<theme>_<hook>`. See 2876c25a28/Functions/Prompts/promptinit (L155)
2022-02-03 21:53:38 +01:00
Kevin Song
5efb78bcd3
fix: Correctly detect older versions of powershell in bug-report (#3543)
* Factor out the shell version function

* Correct command to trim spaces + header
2022-02-03 21:51:39 +01:00
Marc Schreiber
dcf66659d0
feat: Enable Undistract Me for Linux (#3547)
In #1019 the undistract feature has been added to starship without
enabling it by default due to the system dependency on libdbus. With
recent versions of notify-rust the dependency is no longer required and
the feature can be enabled by default.
2022-01-31 15:28:13 -06:00
QuiCkSTaR
5a26355b0e
feat(localip): add module to print the current ipv4 address (#3289) 2022-01-30 21:31:26 +01:00
Kevin Song
6e24358052
fix(bash): Restore previous exit status in bash init (#3521)
* fix: Restore previous exit status in bash init

* Do it correctly this time
2022-01-30 10:52:51 +01:00
TrickyPi
65f29754d3
fix(nodejs): use e718 as the default of symbol in node configuration (#3533)
* fix: use e718 as the default of symbol in node configuration

* wip: change nodejs symbol in docs/config & add a nodejs symbol configuration in docs/presets

* wip: update CONTRIBUTING.md
2022-01-30 10:28:00 +01:00
Lyndon Sanche
e680540cfc
feat(cmd_duration): Make notification timeout configurable (#3515)
* Allow customization of notification timeout

* Document new notification duration option

* Check for out-of-bounds timeout and correct it

* Implement ModuleConfig for u32

* Revert "Check for out-of-bounds timeout and correct it"

This reverts commit 52109ab5f7c336b55c81bccafb3adbfc81514553.

* Switch notification_timeout to u32

* Note notification_daemons might not honor timout

* Notification timeout defaults to daemon timeout

* Leave default value of notification_timeout blank in docs
2022-01-29 22:56:55 +01:00
David Knaack
6ca911b9fe
fix(elvish): use $pwd for logical-path (#3534)
The `$PWD` environment variable used by starship is not updated on startup by `elvish`. `elvish` also provides a separate `$pwd` variable that does get updated and seems to be be a better indicator for the current logical path.
2022-01-28 21:48:10 +01:00
Joseph Chung
b99d3b8e24
feat: starship bug-report sets syntax highlighting for config file (#3529)
Set the syntax highlighting for the config file in starship bug-report, using the triple backtick syntax.
2022-01-28 14:17:49 +03:00
Aaron Friel
568d057032
feat: add username to Pulumi module (#3428)
* feat: add username to Pulumi module

* run dprint fmt
2022-01-25 10:40:44 -06:00
Kevin Song
08b5ad94fd
ci: Fix aws::expiration_date_set_from_file race (#3484)
* ci: Fix aws::expiration_date_set_from_file race

While aws::expiration_date_set_from_file will almost-always work
perfectly locally, it is theoretically possible for the thread running
the test to be scheduled away betwen writing the file with timing
information and then actually reading it, resulting in a
shorter-than-expected time appearing in the module. This can also happen
if the test triggers right at the very end of a second (e.g. at
10:45:47.999995).

This appears to actually happen sometimes on heavily-loaded GitHub
Actions runners. To fix this issue, we allow for up to a two-second
delay between when the file is written and when the test actually fires
(allowing "30m", "29m59s", and "29m58s" as possible values).

* Fix typo
2022-01-22 12:54:04 +01:00
Harald Hoyer
4f46411403
feat: add a container indicator (#3304)
* test: add mock method for absolute files

Signed-off-by: Harald Hoyer <harald@hoyer.xyz>

* feat(module): add a container indicator module

Adds a container type indicator, if inside a container,
detected via the presence of some marker files.

E.g. inside a podman container entered with `toolbox enter`
the prompt changes to the container name and version.

```
starship on  container_rebased [$!] is 📦 v1.0.0 via 🦀 v1.56.1
❯ toolbox enter

starship on  container_rebased [$!] is 📦 v1.0.0 via 🦀 v1.56.1
⬢ [fedora-toolbox:35] ❯
```

Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2022-01-21 09:44:46 -06:00
moko256
0d573ac5ea
perf(elvish): Use built-in randint instead of starship session. (#3479) 2022-01-21 08:08:14 +01:00
Segev Finer
7e32fd952e
feat(pwsh): Set STARSHIP_SHELL to pwsh on PS >5 (#3443)
* feat(pwsh): Set STARSHIP_SHELL to pwsh ON PS >5

This is needed for the custom module to use the correct shell.

Closes #3376

* Update src/context.rs

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-01-16 20:28:26 +01:00
David Knaack
0fd6f05da4
fix(properties): fix regressions in status, pipestatus and terminal-width handling (#3399) 2022-01-15 04:21:38 -05:00
David Knaack
8985499c95
fix: allow compilation without battery feature (#3435) 2022-01-14 22:12:10 +01:00
Segev Finer
0b6ffca35d
fix(pwsh): Avoid polluting the global function namespace (#3424)
* fix(pwsh): Avoid polluting the global function namespace

This is an alternative to #3386

* Review changes

* Move continuation prompt after setting starship env
2022-01-14 21:54:29 +01:00
David Knaack
673a198176
fix(bug-report): remove git.io link shortening (#3425) 2022-01-14 15:22:36 +03:00
Rashil Gandhi
c335b4267b
feat: add support for cmd (#3277)
* feat: add support for cmd

* add preprompt and precmd support

* add keymap support

* add info about minimum Clink version

* simplify escaping

* add handling for cmd custom commands

* add support for transient_prompt and transient_rprompt

* Revert 914057952508e81e20086fcb707ba2a0be85fdd3

This reverts commit "add support for transient_prompt and transient_rprompt"

* Apply suggestions from code review

* disable cmd shell custom commands

* any shell other than cmd can be used

* better error and correct script location

* move shell check in `map_no_escaping`
2022-01-09 23:47:53 -06:00
moko256
500dc3ea6e
feat(elvish): last command status (#3403) 2022-01-06 22:00:38 +01:00
David Knaack
20cf200c3a
refactor: update clap to v3 (#3370) 2022-01-04 12:49:42 +03:00
David Knaack
35eae3fb4a
refactor(process_control): switch to new API (#3385) 2022-01-03 09:14:19 -05:00
Zhong Liu
295948bc6c
feat(package): support for dart pub version (#3373)
* feat(package): add support for dart pub version

* feat(package): add doc for dat pub version
2022-01-01 23:57:20 +01:00
Matan Kushner
800fbec0cf
fix: update continuation prompt to be more minimal (#3374)
Co-authored-by: Kevin Song <chips@ksong.dev>
2022-01-01 14:39:08 -05:00
Ryan Cohen
4deaa02d6f
feat: set a continuation prompt for supporting shells (#3322)
* feat: set a continuation prompt for supporting shells (#3134)

* docs: fixed wording of documentation

* fix: continuation prompt is now only set once

* fix(docs): fixed typo in advanced-config/README.md

Co-authored-by: Segev Finer <segev208@gmail.com>

* fix: update --continuation argument

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* fix: updated continuation prompt

- PROMPT2 was fixed to be set only once in zsh.
- `continuation_symbol` and `continuation_format` were removed in
  place of a single variable; `continuation_prompt`.
- The continuation prompt was moved out of the character module.

* fix: ran rustfmt

* docs: updated continuation prompt docs

Co-authored-by: Segev Finer <segev208@gmail.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2022-01-01 14:12:11 +01:00
David Knaack
2b405042b9
feat(xonsh): support rprompt (#3362) 2021-12-31 08:23:01 +01:00
Ikko Ashimine
c5a5fc2820
chore(directory): fix typo (#3364)
seperators -> separators
2021-12-31 08:22:46 +01:00
David Knaack
3b7446fdf3
fix(rust): fix overrides on windows and set cwd (#3359) 2021-12-30 18:24:21 -06:00
arcnmx
a95332485b
perf(git_status): tweak exec flags to omit unnecessary info (#3287)
* perf(git_status): tweak flags to omit extra info

`git status` can be prohibitively slow on some repos, so allow the
config to influence what flags are passed to git. For instance, if there
is no configured symbol for untracked files, tell git to omit them from
its output. This can easily result in a 2~10x speedup in many cases, but
requires the user to opt-in to hiding information from the prompt.

* docs(git_status): add ignore_submodules option
2021-12-30 15:12:53 -06:00
Segev Finer
1c305c9de7
feat(directory): Windows path formatting via path_slash::PathBufExt (#3157)
* feat: Experimental Windows path formatting via path_slash::PathBufExt

* Rework the slash path conversion into a real PR

* Add a test for convert_slash = false

* Attempt fixing CI failures

* Fix lint and fmt

* Fix docs/config/README.md getting messed up

* Rename convert_slash/from_slash

* Move convert_path_sep calls in tests

* Keep path_vec immutable

* Run rustfmt
2021-12-30 09:57:13 +01:00
Maximous Black
f48c7a26cf
feat(deno): detect deno.json and deno.jsonc (#3220)
* feat(deno): detect `deno.json` and `deno.jsonc`

* update docs

* update tests

* cargo fmt

* revert lockfile changes

* revert doc updates to non-english files

* Restore README.md

* fmt
2021-12-30 09:55:46 +01:00
David Knaack
67cddb616b
fix(elvish): upgrade shell integration for v0.17 (#3310) 2021-12-30 09:49:55 +01:00
Denis Cornehl
c63e9a71bd
perf(rust): additionally check rustup default for faster result. (#3354)
* perf(rust): additionally check `rustup default` for faster result.

After checking directory overrides we were directly falling back to the
relatively slow call to `rustc --version`.

Inserting a call to `rustup default` leads to a quicker response.

* use `context.exec_cmd` instead of `create_command`
2021-12-28 21:10:49 +01:00
David Knaack
af98f5b8ce
fix: set cwd for command execution (#3309) 2021-12-27 23:56:06 -06:00
Zhong Liu
8d0cebdcbd
fix(dart): detect version output in stdout with dart 2.15+ (#3349) 2021-12-24 09:43:07 -05:00
Mika Fischer
cb40787e2a
feat(status): Add hex_status (#3312) 2021-12-21 05:05:28 -05:00
Lucien Fiorini
a8579d6f2f
fix: Display durations of 0ms (#3121)
Previous code would render all components as empty, resulting
in an empty string even if min_time was 0. This adds a special
case which forces prompt to render "0ms"
2021-12-20 15:58:25 -06:00
Denis Cornehl
006fbf0dd5
fix(aws): prevent endless loop when AWS config file is a directory (#3335)
When opening a directory as a file the intial open works, while
subsequent line-reads will fail with _is a directory_.
Since erroring line-reads were just skipped this lead to an
endless loop.
2021-12-20 21:15:00 +01:00
Mika Fischer
b21904c9d3
fix: Store $? and $LASTEXITCODE first in PowerShell (#3316)
These need to be stored before calling any PowerShell function or executable.
Otherwise the values will be overwritten and cannot be properly restored
or passed to starship.

Fixes: #3315
2021-12-13 10:15:02 +01:00
David Knaack
b4a14e3a80
test(hostname): fix trim_at test with unicode hostname (#3295) 2021-12-09 22:15:25 +01:00
Mikkel Mork Hegnhoj
365b295433
feat(azure): Azure module (#3275)
* Azure module

* make Semantic PR bot happy

* Responding to review

* Changing severity of logging event
2021-12-06 23:01:33 +01:00
arcnmx
e3a88a6ec1
fix(git_branch): more robust handling of .git (#3290) 2021-12-03 15:15:31 -05:00
pejax
1109fd6997
feat: Add package version detection for sbt projects (#3274) 2021-12-03 01:56:06 -05:00
David Knaack
77182a9a22
chore(clippy): fix new clippy lints (#3294) 2021-12-03 00:54:56 -06:00
David Knaack
e18c61cd68
fix(directory): improve truncation detection (#3266) 2021-11-26 13:07:28 +01:00
Ikko Ashimine
337154ad35
chore: fix typo in docker_context.rs (#3265)
enviroment -> environment
2021-11-23 17:56:16 +01:00
Gabriel Victor
779e53cd66
feat(module): Add sudo module (#3135)
* add feature - sudo module

* add sudo module identifiers and entry point

* fix test test_sudo_not_cached

* add test test_sudo_cached

* add `allow_windows` and `binary` options

* rustfmt sudo_x_cached and rmv them on windows

* add false `allow_windows` block windows test

* add `doas` cached/not_cached tests

* better description in `starship explain`

* fix `test_doas_cached` with `-n` flag

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* rmv `binary` alternatives and their tests

* fix symbol and update config/README

* fix all mocks to use `sudo -n true`

* fix expected output in `test_sudo_cached`

* proper checking for blocked sudo

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* add `allow_windows = true` to non-windows tests

* allow sudo_* tests to run on windows + fix parsed

* rustfmt `blocks_windows` test

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2021-11-15 06:46:13 +01:00
Matthew Donoughe
c3e33ea1c7
feat: print-config subset of config (#3179)
* feat: print-config subset of config

* only print format helpers with format config

* improve help text

* also change argument name
2021-11-15 06:45:19 +01:00
David Knaack
6068bab872
build: bump toml_edit from 0.6.0 to 0.8.0 (#3225)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-11 05:58:47 -05:00
cbolgiano
8d80d2ef06
feat(python): Show value of PYENV_VERSION when present (#3144)
* 2872: Show value of PYENV_VERSION when present

* 2872: Run cargo fmt
2021-11-09 21:55:53 +01:00
Derek Wilson
8ae6548dc0
fix: save pipestatus in fish init functions (#3160) 2021-11-09 14:27:30 -05:00
t-mangoe
b07abc990e
feat: style git repo root (#2010) 2021-11-09 14:12:40 -05:00