Commit Graph

944 Commits

Author SHA1 Message Date
Ohad Lutzky 7b851fc30e
feat(scanner): add option not to follow symlinks (#5325)
Add follow_symlinks option

Settings this to false can fix hanging on symlinks to slow/inaccessible
filesystems.
2023-11-02 09:01:09 +01:00
William Howard 81c7d0cc58
feat: add additional exit status code meanings from libc (#5412) 2023-10-13 10:56:28 +02:00
Ariel Barreiro 8168c21293
fix(bash): unbound variable error with STARSHIP_PREEXEC_READY (#5438)
Prevent unbound variable error
2023-10-01 08:54:06 +02:00
Mick Hohmann 43b2d42cd5
feat(hostname): add detect_env_vars as option (#5196)
* Added hostname.detect_env_vars

based on the newly added context::detect_env_vars

- extended context::detect_env_vars to check for negated environment
  variables as well, analogous to the other detect modules
- made hostname.detect_env_vars only active if ssh_only is set to false
  for backwards compatibility

Co-authored-by: Dominik Sander <dsander@users.noreply.github.com>

* added clippy recommendations, removed unneeded comments

* Added new logic (suggested in https://github.com/starship/starship/pull/5196#issuecomment-1566228913)

The new `detect_env_vars` now requires either SSH_ONLY to be false or the
environment variable SSH_CONNECTION to be set, so that is will be used

* Fixed typo

* Refactored the detect_env_vars function for early returns and better readability

* Change boolean logic for better readability

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

* Apply suggestions from code review to `detect_env_vars` method.

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

* Fixed bracket error & updated comments

- fixed bracket error in hostname.rs, after changes
- updated comments for context.rs, for the suggested changes

* Removed obsolete warning from docs/config/README.md

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

---------

Co-authored-by: Dominik Sander <dsander@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-09-16 16:42:13 +02:00
Jan Katins 6b444e05c6
feat(kubernetes): Add styling based on current context (#4550)
* feat(kubernetes): Add styling based on current context

Add an ability to customize the configuration of the kubernetes module style, based on the current context.

A new variable is added to the config section, called environments, which is a list of possible customizations. Each such customization is an object with a context_pattern regex, which matches context name, and an optional style and icon that will override the global configuration, if the currently used context matched the context_pattern.

Based on multiple attempts to add per-context styling and symbols to the kubernetes module.

- https://github.com/starship/starship/pull/1568 by @lht https://github.com/lht -> base
- https://github.com/starship/starship/pull/614 by @nomaed https://github.com/nomaed -> naming, symbol, some tests

Rebased and combined by @jankatins

Contains the following squasched commits

- Rename to contexts and move aliases into contexts
- Move deprecated functions to a submodule
- Cleanup: ignore None-valued KubeCtxComponents
- Add regex func + clean up matching-context search
- Placate paper clip

Closes: https://github.com/starship/starship/issues/570

Co-authored-by: =?UTF-8?q?Boris=20Aranovic=CC=8C?= <nomaed@gmail.com>
Co-authored-by: Jan Katins <jasc@gmx.net>
Co-authored-by: Kevin Song <chips@ksong.dev>

* refactor(kubernetes): Remove options and use clearer names

* test(kubernetes): Handle duplicated contexts right

* refactor(kubernetes): Cleaner user matching

* fix(kubernetes): Only show warning in case of problems

* feat(kubernetes): Add back alias replacements

* refactor(kubernetes): Cleanup rust usage

---------

Co-authored-by: Haitao Li <lihaitao@gmail.com>
Co-authored-by: =?UTF-8?q?Boris=20Aranovic=CC=8C?= <nomaed@gmail.com>
Co-authored-by: Kevin Song <chips@ksong.dev>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-09-02 09:19:33 +02:00
Vegard Skui e867cda1eb
feat(fossil_metrics): add fossil_metrics module (#4874)
* feat(fossil_metrics): add fossil_metrics module

* Return early if not in a Fossil check-out

* Add more tests for fossil_metrics

* Move is in Fossil checkout check after module enabled check

* Update type for new toml version

* Update the config file schema

* Rework parsing of fossil diff output

* Fix Fossil check-out detection in subdirectories

* Use regex to only match expected fossil diff output

* Use shared ancestor scanning and fix detection on Windows

* Add note on minimum Fossil version
2023-09-02 09:19:04 +02:00
Hugo 5ca8daacd4
perf: Skip unnecessary indirection in starship init zsh (#5322)
Skip unnecessary indirection in starship init zsh

The installation instructions indicate that one should add this snippet
to zsh's configuration:

    eval "$(starship init zsh)"

The command `starship init zsh` prints a little shell script for zsh to
execute:

    > starship init zsh
    source <(/usr/bin/starship init zsh --print-full-init)%

Running `starship init zsh --print-full-init` prints yet another script
that zsh executes. There is an intermediate step that seems redundant;
starship prints a script for zsh to execute, and this script prints
another script for zsh to execute.

This commit skips the intermediate execution and prints the final script
in `starship init`. This is backwards compatible and does not require
any changes in the installation instructions, so it could be release
without a major version bump.

Note that it would still be possible to update the installation
instructions to `source <(starship init zsh)`; this patch works with
both `source` and `eval`. Picking the most performant one is beyond this
scope of this commit.

See: https://github.com/starship/starship/issues/2637
2023-08-31 19:08:13 +02:00
David Knaack 77967148b6
chore: handle rust 1.72 clippy & fmt changes (#5399) 2023-08-25 22:53:35 +02:00
David Knaack 03278e4de4
fix(git): prevent `core.fsmonitor` from executing external commands (#3981) 2023-07-31 21:44:31 +02:00
cgzones 4fa4230dda
refactor(directory): avoid unnecessary string copies (#5313) 2023-07-30 14:32:20 +02:00
Vivek Kushwaha 3402f0e82a
feat(shlvl): add repeat_offset for repeated symbol (#5289)
Signed-off-by: Vivek Kushwaha <yoursvivek@users.noreply.github.com>
2023-07-14 10:59:02 +02:00
David Knaack 410f107c72
perf(git_status): query git stash count via gitoxide (#5238) 2023-07-11 11:26:50 +02:00
David Knaack b9a4b08ac2
fix(rprompt): remove lprompt modules from `$all` again (#5067) 2023-07-06 11:32:17 +02:00
Ajeet D'Souza 0a05b5ca8b
fix(bash): Clear out completed jobs before counting NUM_JOBS (#5253)
Clear out completed jobs before counting NUM_JOBS
2023-06-17 14:06:35 +02:00
David Knaack 796a582f3c
chore: fix new clippy lints (#5241) 2023-06-13 17:06:04 -05:00
David Knaack 847a642d6a
chore: fix typos (#5239) 2023-06-13 15:40:17 -05:00
Nemo157 318050976b
feat(pwsh): Support vi command mode indicator (#5049)
Support vi command mode in powershell
2023-06-12 11:05:44 +02:00
Antoine Stevan 470aeb09a7
feat: update the nushell init file and make it valid module and overlay (#5188)
* break long commands into multiple lines for readability

* fix the format of closures

We generally write `{|| ...}` instead of `{ || ...}`.

* remove the `$"--opt=(val)"` structure when possible

`starship` does not require to use `--opt=val` and so we do not
need to do that with Nushell :)

the only place where this is required is with `--status` because
`$env.LAST_EXIT_CODE` can be negative and `starship` does not
appear to *like* values of the form `-2`...
so i left this line as it was.

on the other hand, `$env.CMD_DURATION_MS` and `(term size).columns`
should be fine 😌

* simplify the `config` mutation with new `?` syntax

This is a new very handy feature of Nushell which gives a much
simpler command combined with `default` and `merge`.

* put all `let-env`s inside an `export-env` with `load-env`

This commit has two reasons of existing:
- i think it makes it a bit easier to read with less `let-env`s
- it transforms the *script* into both a valid module and a valid
overlay

* bump the version to `0.78` in to docs

* add a note about the init file being also a module to all docs

* tweak the documentation

* update the Nushell part of the install script

* format the vuepress config file

as previous commit 117580136d3da5e00a4ccb7ada508c8510a2e50e was
not successful, let's try to make the CI happy manually 😌

* remove code quotes in the `config_cmd` of Nushell

* format the style in the Nushell `warning` section
2023-06-12 11:02:46 +02:00
marcybell 70d2014f34
feat(nodejs): Add `expected_version` variable (#5081)
* add `expected_version` variable to `nodejs`

* show comparison symbols with `expected_version`

* documentation, formatting, more tests

* Remapped `engines_version` to $version

* Added better descriptions to docs

* Update docs/config/README.md

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

* Removed clone from `nodejs`, formatting

* refactored function calls

* rewrote `engines_version` formatter

* Moved Lazy variables into maps

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-06-01 21:24:11 +02:00
marcybell 351bf9d0b3
feat(golang): adding `mod_version` variable (#5177) 2023-06-01 21:18:38 +02:00
Mick Hohmann 2558c4588b
fix: update of presets and default configuration to reflect changes in Nerd Fonts 3.0 (#5162)
* Updated nf-mdi-* to nf-md-* symbols

The following symbols where changed
- directory.read_only
- memory_usage
- meson
- nim
- os.symbols.Garuda
- os.symbols.HardenedBSD
- os.symbols.Illumos
- os.symbols.OpenBSD
- os.symbols.OracleLinux
- os.symbols.Redox
- os.symbols.Solus
- os.symbols.Windows
- package
- rlang

* Updated nf-mdi-* to nf-md-* symbols (for all other presets)

The following symbols where changed
for pastel-powerline:
- directory.substitutions.Documents
- nim
for tokyo-night
- directory.substitutions.Documents
- golang

* Updated nf-mdi-* to nf-md-* symbols for the default configuration in modules in src/configs/*.rs

The following symbols where changed
- azure
- battery.full_symbol
- battery.charging_symbol
- battery.discharging_symbol
- battery.unknown_symbol
- battery.empty_symbol

* Updated config-schema.json

* Updated src/modules/*.rs docs/config/README.md

and used `nerdfix` to check if I overlook anything

* Fixed the battery discharging symbol in the tests

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jtrv <travershasemail@gmail.com>
2023-05-10 14:36:56 +02:00
Denis Cornehl d07a8e3668
feat(gcloud): add `detect_env_vars` option (#5166)
* feat(gcloud): add `detect_env_vars` option

* regenerate config schema
2023-05-09 07:55:49 +02:00
kensasongko 297176b0b8
feat(aws): support aws sso with automatic authentication refresh (#5170)
* feat(aws): support aws sso with automatic authentication refresh

* docs(aws): add sso_session for profile detection
2023-05-09 07:53:45 +02:00
Sebastian Thiel 8884bd1fd0
build(deps): upgrade gitoxide to v0.44 for performance improvements during discovery (#5141)
upgrade gitoxide to v0.44 for performance improvements during discovery

Please note that there is a new `dot_git_only` option which would further
speedup discovery. On even moderatly fast disks that probably not going
to make a difference, but it will on incredibly slow (networked) disks.

See https://github.com/helix-editor/helix/issues/6867 for reference.
2023-04-27 21:14:34 +02:00
marcybell b8a167db57
refactor(Context): `set_config` method for `Context` (#5079)
* add `set_config` method to `Context`

* Made inline comment a doc comment

* use `default_context()` for `set_config()` test

* use `set_config()` in tests for `print.rs`

* set root config w `set_config()` (`print.rs` test)
2023-04-24 16:03:47 +02:00
Andrew Pantuso e5cec9ea50
fix(style): ensure nested style variables are processed during formatting (#5120)
fix: ensure nested style variables are processed during formatting
2023-04-24 16:03:04 +02:00
Dom Slee ce7f984932
fix(config): Make print-config not panic without a config (#5001) 2023-04-13 19:29:21 -05:00
AnirbanHalder654322 b2ebd5b50c
feat: Add Solidity Module (#5047)
* Adding documentation

* Documentation and schema addition

* Creating solidity config

* Module for solidity lang

* Updating all the files

* Changing according to clippy

* Fixing misspellings

* Changes suggested by clippy

* Updating schema , maybe fixing docs workflow error

* Updating schema

* Removing solcjs from default compiler list

* Fallback test added and test string fixed

* Fixing docs

* Updating schema

* Updating schema

* Fixing docs

* Updating schema

* Updating schema

* Typo fix

* Update docs/config/README.md

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

* Update src/utils.rs

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

* Fix build commit

---------

Co-authored-by: Anirban Halder <shaeo967@gmail.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-04-13 21:05:12 +02:00
Colton Donnelly ce01423152
feat(git_metrics): add option to ignore submodules (#5052)
* add docs

* update schema

* ok, actually update schema

* add test

* fix lint

* accidentally included my .devenv directory
2023-04-13 21:04:15 +02:00
marcybell 27ffa37cfd
feat(azure): subscription name aliases (#4949)
* From issue #4448, added `subscription_aliases`
as a field for the Azure module

Can be set in starship.toml with
[azure.subscription_aliases]

* Updated config file schema

* Added entry into documentation

* Update README.md

* Formatted with dprint
2023-04-13 21:03:14 +02:00
Chad Denyar edb96cad58
feat: add typechange to git_status module (#4829)
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-04-13 21:02:08 +02:00
David Knaack 7daddbe620
build(deps): update rust crate starship-battery to 0.8.0 (#5106) 2023-04-13 17:41:25 +09:00
David Knaack b475b5809f
build(deps): update rust crate os_info to 3.7.0 (#5057)
* build(deps): update rust crate os_info to 3.7.0

* add new os symbols

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 13:07:30 +02:00
Aurélien Gâteau de7e94884b
fix(java): wrong version number when using Android Studio JDK (#4966)
The regular expression would get the revision number found in:

    with gcc Android (7284624, based on r416183b)

so it would print "7284624".
2023-04-07 15:40:23 +02:00
Samir Talwar 041a518353
chore(nu): use updated closure syntax (#5054)
Update starship.nu to conform to Nushell changes

Nushell recently made a change to require that all closures have an explicit parameter list, even if it's empty, in https://github.com/nushell/nushell/pull/8290.

This updates starship.nu to conform to this requirement.

I have casually tested this against both the latest released version of Nushell, and the latest version on HEAD; the changed code works well (for me) on both.
2023-04-05 07:53:06 +02:00
jliaoh d29ce7c45d
feat(custom): add option to check if pwd is in a repo (#4822)
* feat(custom): add option to check if pwd is in a repo

* Apply suggestions from code review

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

* change whenrepo to require_repo

* chore: fix doc formatting

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-04-02 16:39:45 +02:00
Cosimo Matteini d2801ac443
feat(aws): add support for source_profile (#4859)
feat(aws): add support for source_profile (#3834)

Co-authored-by:	@luiscamaral
2023-04-02 16:38:03 +02:00
Vegard Skui 4bca74eca2
feat(fossil): detection of Fossil check-outs in subdirectories (#4910)
* Move PathExt::device_id() outside modules module

* Add upwards_sibling_scan-function

* Fix Fossil check-out detection in subdirectories

* Use shared upwards scanning function in hg_branch

* Let the caller specify if they're looking for a file or a folder

* fix merge

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-04-02 16:37:27 +02:00
Ryan Sabatini aef799bfb0
fix(pulumi): Fix formatting on pulumi module when using version (#5038)
Fix formatting on pulumi module when using version

Sanitize `pulumi version` output to remove leading 'v' character and trailing
newlines.
2023-04-02 16:36:54 +02:00
Harsh Shandilya f7fe41f9c6
fix(gradle): add support for unstable Gradle versions (#5021) 2023-03-27 16:41:09 +02:00
Zhizhen He 0f8a2d9363
chore: add spell checker to workflows (#4975)
* chore: add spell checker to workflows

* fix: update config schema

* fix: revert for fennel.rs
2023-03-22 13:42:46 -05:00
Harry Hodge 74ce7fdbee
feat(aws): Adds support for AWS_CREDENTIAL_EXPIRATION environment variable (#5002)
feat(aws): supports AWS_CREDENTIAL_EXPIRATION environment variable

Adds support for the AWS_CREDENTIAL_EXPIRATION environment variable
which was adopted as the standard way to set the expiration for
temporary credentials. The existing AWS_SESSION_EXPIRATION environment
variable is not dropped for backwards compatibility.

See https://github.com/aws/aws-cli/pull/7398
2023-03-20 21:56:12 +01:00
Stefan Cosma c07a21d48a
fix(fossil_branch): fossil checkout database file name on windows (#4978)
fix(fossil_branch): use proper fossil checkout database file name on windows
2023-03-14 18:56:29 +01:00
Swarnim Maheshwari 0ad0465a7a
fix(init): avoid cygpath for starship binary path (#4970)
Update mod.rs
2023-03-11 07:24:14 +01:00
David Knaack c8520dc9d9
chore: fix clippy warnings for rust 1.68 (#4983) 2023-03-11 07:23:30 +01:00
David Knaack 5e78226a3f
fix(preset): add output-flag to avoid encoding issues (#4926) 2023-03-03 11:46:16 +01:00
David Knaack d1891de638
chore: use updated gitoxide crate names (#4913) 2023-02-21 13:03:17 +09:00
iuhoay 07c2298965
feat(java): Add `.sdkmanrc` for Java (#4888)
* Add `.sdkmanrc` for Java

* Update config-schema.json, Add `.sdkmanrc` file for Java

* Update doc
2023-02-11 14:06:21 +01:00
Martin Slot e6c5571fc9
fix: let-env warning when using nushell (#4893)
Fixed a startup error, when using nushell.

The nushell warns about not using `let-env` for configuring `config`. I have removed the `load-env` and just added a `let-env` for the `config` as the documentation recommends: https://www.nushell.sh/book/environment.html#let-env
2023-02-11 14:05:39 +01:00
David Knaack c019630653
build(deps): update rust crate os_info to 3.6.0 (#4878)
* build(deps): update rust crate os_info to 3.6.0

* add new os symbols

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 12:52:14 +01:00