Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ability to set program for zinit ls to use #221

Merged
merged 1 commit into from
Apr 25, 2022

Conversation

vladdoster
Copy link
Member

@vladdoster vladdoster commented Apr 25, 2022

Description

A user can now specify a program via the $ZINIT[LIST_COMMAND] variable.
Additionally, when unset, the default behavior is to first check for exa, then
tree, and ls as a last resort.

e.g., use exa or any tree-esque program in zinit ls.

  • Add unit test for tree

Closes #170

Motivation and Context

See #170

Usage examples

Before sourcing zinit.zsh, set $ZINIT[LIST_COMMAND]:

typeset -gAH ZINIT;

# A safe choice is to use `ls`
$ZINIT[LIST_COMMAND]='ls --tree'

command chmod g-rwX $ZINIT[HOME_DIR] \
 && zcompile $ZINIT[BIN_DIR]/zinit.zsh \
 && source $ZINIT[BIN_DIR]/zinit.zsh \
 && autoload -Uz _zinit \
 && (( ${+_comps} )) \
 && _comps[zinit]=_zinit

How Has This Been Tested?

Manually

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to
    change)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

A user can now specify a program via the `$ZINIT[LIST_COMMAND]`
variable. Additionally, it will first check for `exa` and fallback to
tree if this variable is not set.

e.g., use exa or any `tree`-esque program in `zinit ls`.

Closes #170

Signed-off-by: Vladislav Doster <[email protected]>
@vladdoster vladdoster force-pushed the feat/use-diff-cmd-for-zinit_ls branch from a9e4167 to a9d5690 Compare April 25, 2022 03:01
@vladdoster vladdoster merged commit bad7af3 into main Apr 25, 2022
@vladdoster vladdoster deleted the feat/use-diff-cmd-for-zinit_ls branch April 25, 2022 06:00
github-actions bot pushed a commit that referenced this pull request Nov 7, 2022
# [3.8.0](v3.7.0...v3.8.0) (2022-11-07)

### Bug Fixes

* account for systems where musl is present ([#269](#269)) ([8620574](8620574))
* alist repository for gh-r test ([#305](#305)) ([fb3c082](fb3c082))
* allow zinit to be run from non-interactive scripts ([#227](#227)) ([c3d1bb5](c3d1bb5)), closes [#199](#199)
* broken yaml syntax in issue template ([#355](#355)) ([f729e06](f729e06))
* calico gh-r zunit test ([#356](#356)) ([56fb9e0](56fb9e0))
* change ctags symbols browser key  binding from `ctrl-k` to `alt-Q` ([#387](#387)) ([7f6dc7d](7f6dc7d)), closes [#386](#386)
* Do not try to escape exclamation marks ([#399](#399)) ([0e55b2e](0e55b2e))
* docs workflow should fail if out-of-date ([#278](#278)) ([07cde66](07cde66))
* Don't error if $OPTS is not yet defined in .zinit-compinit call ([44765e0](44765e0))
* filter by runtime detected CPU before compiled CPU ([#304](#304)) ([a4dc13f](a4dc13f)), closes [#287](#287)
* gh-r & plugin zunit tests ([dd12fce](dd12fce))
* gh-r filters i686 (32 bit) for x86_64 ([#226](#226)) ([57f0d82](57f0d82)), closes [#225](#225)
* gh-r logic ignores [36]86 assets ([#235](#235)) ([d60638f](d60638f)), closes [#225](#225) [#246](#246) [#247](#247)
* gh-r removes linux32 assets on 64 bit OS ([1864c0b](1864c0b))
* gh-r retrieves release data GH REST API  ([#373](#373)) ([4a2a120](4a2a120)), closes [#374](#374)
* modify regex in gh-r for assets to not consider for selection ([#244](#244)) ([6ef8439](6ef8439))
* more cleaning up urls ([672ae51](672ae51)), closes [#47](#47)
* names of ctag Make target deps ([#407](#407)) ([9987d5c](9987d5c))
* package are broken again ([24f10f6](24f10f6))
* permissions for PR labeler GH action workflow ([#236](#236)) ([8a0d567](8a0d567))
* read without -r is generally bad. ([00c70a4](00c70a4))
* remove curl option "--tcp-fastopen" which is not always available ([#299](#299)) ([308c9d4](308c9d4))
* remove macOS 10.5 & 11 from test matrix ([c613193](c613193))
* remove use less line ([4f87076](4f87076))
* rename `docs` to `doc` to match doc dir ([#212](#212)) ([3a7dc95](3a7dc95))
* rm linux32 assets in aarch64/arm64 gh-r regex ([#414](#414)) ([529aa20](529aa20))
* syntax error when checking for `realpath` command  ([#259](#259)) ([05559eb](05559eb)), closes [#257](#257)
* trigger for PR labeler GH action workflow ([#237](#237)) ([49af866](49af866))
* typo & triggers in documentation workflow ([#308](#308)) ([161d7c1](161d7c1))
* unmatched "(" in windows gh-r patterns ([#280](#280)) ([1f4ba5a](1f4ba5a))
* update `zdharma` to `zdharma-continuum` ([66b1700](66b1700))
* update docs for new jq-check ([6207427](6207427))
* use [*] inside arbitrary strings. ([73a8c92](73a8c92))
* workflow pkg mgmt due to base OS changes ([195f72d](195f72d))
* ziextract execs discovery regex ([#410](#410)) ([105b38a](105b38a))
* zunit install in GH workflow ([#412](#412)) ([f4787dc](f4787dc))

### Features

* ability to set program for `zinit ls` to use ([#221](#221)) ([bad7af3](bad7af3)), closes [#170](#170)
* add `-a` (actual time) to `zinit times` cmd ([#223](#223)) ([450d3c1](450d3c1))
* add `krew` and `prebuilt-ripgrep` gh-r zunit tests ([#267](#267)) ([f25b4ae](f25b4ae))
* add compile vim from source zunit test ([#232](#232)) ([126528c](126528c))
* add configure"" ice ([#334](#334)) ([40a46c6](40a46c6))
* add GH action to remove old workflow logs ([#248](#248)) ([6647bdc](6647bdc))
* add PR labeler to show what parts of Zinit are changed ([#211](#211)) ([42e83d7](42e83d7))
* add releases via semantic-release ([73542b4](73542b4))
* add releases via semantic-release ([#415](#415)) ([cfa2f0e](cfa2f0e))
* expand linted file types to markdown and shell ([96fe03f](96fe03f))
* **git-process-output:** simplify progress-bar ([#204](#204)) ([c888917](c888917))
* update output messaging to be more informative ([047320a](047320a))
@github-actions
Copy link

github-actions bot commented Nov 7, 2022

🎉 This PR is included in version 3.8.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

psprint pushed a commit to psprint/.priv-zinit-fork that referenced this pull request Dec 30, 2022
# [3.8.0](zdharma-continuum/zinit@v3.7.0...v3.8.0) (2022-11-07)

### Bug Fixes

* account for systems where musl is present ([zdharma-continuum#269](zdharma-continuum#269)) ([8620574](zdharma-continuum@8620574))
* alist repository for gh-r test ([zdharma-continuum#305](zdharma-continuum#305)) ([fb3c082](zdharma-continuum@fb3c082))
* allow zinit to be run from non-interactive scripts ([zdharma-continuum#227](zdharma-continuum#227)) ([c3d1bb5](zdharma-continuum@c3d1bb5)), closes [zdharma-continuum#199](zdharma-continuum#199)
* broken yaml syntax in issue template ([zdharma-continuum#355](zdharma-continuum#355)) ([f729e06](zdharma-continuum@f729e06))
* calico gh-r zunit test ([zdharma-continuum#356](zdharma-continuum#356)) ([56fb9e0](zdharma-continuum@56fb9e0))
* change ctags symbols browser key  binding from `ctrl-k` to `alt-Q` ([zdharma-continuum#387](zdharma-continuum#387)) ([7f6dc7d](zdharma-continuum@7f6dc7d)), closes [zdharma-continuum#386](zdharma-continuum#386)
* Do not try to escape exclamation marks ([zdharma-continuum#399](zdharma-continuum#399)) ([0e55b2e](zdharma-continuum@0e55b2e))
* docs workflow should fail if out-of-date ([zdharma-continuum#278](zdharma-continuum#278)) ([07cde66](zdharma-continuum@07cde66))
* Don't error if $OPTS is not yet defined in .zinit-compinit call ([44765e0](zdharma-continuum@44765e0))
* filter by runtime detected CPU before compiled CPU ([zdharma-continuum#304](zdharma-continuum#304)) ([a4dc13f](zdharma-continuum@a4dc13f)), closes [zdharma-continuum#287](zdharma-continuum#287)
* gh-r & plugin zunit tests ([dd12fce](zdharma-continuum@dd12fce))
* gh-r filters i686 (32 bit) for x86_64 ([zdharma-continuum#226](zdharma-continuum#226)) ([57f0d82](zdharma-continuum@57f0d82)), closes [zdharma-continuum#225](zdharma-continuum#225)
* gh-r logic ignores [36]86 assets ([zdharma-continuum#235](zdharma-continuum#235)) ([d60638f](zdharma-continuum@d60638f)), closes [zdharma-continuum#225](zdharma-continuum#225) [zdharma-continuum#246](zdharma-continuum#246) [zdharma-continuum#247](zdharma-continuum#247)
* gh-r removes linux32 assets on 64 bit OS ([1864c0b](zdharma-continuum@1864c0b))
* gh-r retrieves release data GH REST API  ([zdharma-continuum#373](zdharma-continuum#373)) ([4a2a120](zdharma-continuum@4a2a120)), closes [zdharma-continuum#374](zdharma-continuum#374)
* modify regex in gh-r for assets to not consider for selection ([zdharma-continuum#244](zdharma-continuum#244)) ([6ef8439](zdharma-continuum@6ef8439))
* more cleaning up urls ([672ae51](zdharma-continuum@672ae51)), closes [zdharma-continuum#47](zdharma-continuum#47)
* names of ctag Make target deps ([zdharma-continuum#407](zdharma-continuum#407)) ([9987d5c](zdharma-continuum@9987d5c))
* package are broken again ([24f10f6](zdharma-continuum@24f10f6))
* permissions for PR labeler GH action workflow ([zdharma-continuum#236](zdharma-continuum#236)) ([8a0d567](zdharma-continuum@8a0d567))
* read without -r is generally bad. ([00c70a4](zdharma-continuum@00c70a4))
* remove curl option "--tcp-fastopen" which is not always available ([zdharma-continuum#299](zdharma-continuum#299)) ([308c9d4](zdharma-continuum@308c9d4))
* remove macOS 10.5 & 11 from test matrix ([c613193](zdharma-continuum@c613193))
* remove use less line ([4f87076](zdharma-continuum@4f87076))
* rename `docs` to `doc` to match doc dir ([zdharma-continuum#212](zdharma-continuum#212)) ([3a7dc95](zdharma-continuum@3a7dc95))
* rm linux32 assets in aarch64/arm64 gh-r regex ([zdharma-continuum#414](zdharma-continuum#414)) ([529aa20](zdharma-continuum@529aa20))
* syntax error when checking for `realpath` command  ([zdharma-continuum#259](zdharma-continuum#259)) ([05559eb](zdharma-continuum@05559eb)), closes [zdharma-continuum#257](zdharma-continuum#257)
* trigger for PR labeler GH action workflow ([zdharma-continuum#237](zdharma-continuum#237)) ([49af866](zdharma-continuum@49af866))
* typo & triggers in documentation workflow ([zdharma-continuum#308](zdharma-continuum#308)) ([161d7c1](zdharma-continuum@161d7c1))
* unmatched "(" in windows gh-r patterns ([zdharma-continuum#280](zdharma-continuum#280)) ([1f4ba5a](zdharma-continuum@1f4ba5a))
* update `zdharma` to `zdharma-continuum` ([66b1700](zdharma-continuum@66b1700))
* update docs for new jq-check ([6207427](zdharma-continuum@6207427))
* use [*] inside arbitrary strings. ([73a8c92](zdharma-continuum@73a8c92))
* workflow pkg mgmt due to base OS changes ([195f72d](zdharma-continuum@195f72d))
* ziextract execs discovery regex ([zdharma-continuum#410](zdharma-continuum#410)) ([105b38a](zdharma-continuum@105b38a))
* zunit install in GH workflow ([zdharma-continuum#412](zdharma-continuum#412)) ([f4787dc](zdharma-continuum@f4787dc))

### Features

* ability to set program for `zinit ls` to use ([zdharma-continuum#221](zdharma-continuum#221)) ([bad7af3](zdharma-continuum@bad7af3)), closes [zdharma-continuum#170](zdharma-continuum#170)
* add `-a` (actual time) to `zinit times` cmd ([zdharma-continuum#223](zdharma-continuum#223)) ([450d3c1](zdharma-continuum@450d3c1))
* add `krew` and `prebuilt-ripgrep` gh-r zunit tests ([zdharma-continuum#267](zdharma-continuum#267)) ([f25b4ae](zdharma-continuum@f25b4ae))
* add compile vim from source zunit test ([zdharma-continuum#232](zdharma-continuum#232)) ([126528c](zdharma-continuum@126528c))
* add configure"" ice ([zdharma-continuum#334](zdharma-continuum#334)) ([40a46c6](zdharma-continuum@40a46c6))
* add GH action to remove old workflow logs ([zdharma-continuum#248](zdharma-continuum#248)) ([6647bdc](zdharma-continuum@6647bdc))
* add PR labeler to show what parts of Zinit are changed ([zdharma-continuum#211](zdharma-continuum#211)) ([42e83d7](zdharma-continuum@42e83d7))
* add releases via semantic-release ([73542b4](zdharma-continuum@73542b4))
* add releases via semantic-release ([zdharma-continuum#415](zdharma-continuum#415)) ([cfa2f0e](zdharma-continuum@cfa2f0e))
* expand linted file types to markdown and shell ([96fe03f](zdharma-continuum@96fe03f))
* **git-process-output:** simplify progress-bar ([zdharma-continuum#204](zdharma-continuum#204)) ([c888917](zdharma-continuum@c888917))
* update output messaging to be more informative ([047320a](zdharma-continuum@047320a))
@turboBasic
Copy link

turboBasic commented Sep 27, 2024

@vladdoster where does ls --tree come from? Neither macOS ls, not GNU coreutils ls, nor Ubuntu's ls have --tree option:

/bin/ls --tree                                           # built-in macOS ls
# ls: unrecognized option `--tree'
# usage: ls [-@ABCFGHILOPRSTUWabcdefghiklmnopqrstuvwxy1%,] [--color=when] [-D format] [file ...]


/opt/homebrew/bin/gls --tree                             # ls from Homebrew coreutils package (GNU ls)
# /opt/homebrew/bin/gls: unrecognized option '--tree'
# Try '/opt/homebrew/bin/gls --help' for more information.


docker run --rm --network=host ubuntu:24.04 ls --tree    # ls from official Ubuntu image (GNU ls)
# ls: unrecognized option '--tree'
# Try 'ls --help' for more information.

Man page for GNU ls(1) also does not list --tree option:
https://man7.org/linux/man-pages/man1/ls.1.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🏦 Proposal: allow user to change tree to other program (e.g. exa)
2 participants