A wrapper to install cli binary from language associated package manager.
jq
curl
Following commands are required for each plugins.
go
npm
cargo
Put bin/ciw
to your $PATH
. This is just a Bash script.
$ curl https://raw.githubusercontent.com/thinca/ciw/master/bin/ciw -o path/to/bin/ciw
$ chmod a+x path/to/bin/ciw
$ ciw install cargo:ripgrep
Arguments of ciw install
takes a form like ${type}:${package}
or ${type}:${package}@${version}
.
$ ciw install go:github.com/mattn/jvgrep/v5@v5.8.9
$ ciw list
cargo:ripgrep
ciw update
without arguments to update all installed apps.
$ ciw update
Or, ciw update
with arguments to update specified apps.
$ ciw update cargo:ripgrep
ciw
checks if a newer version exists, and does nothing if there is no newer version.
Note that only apps without @${version}
can be updated.
$ ciw uninstall cargo:ripgrep
You can restore all apps from ciw list
.
# Save your apps list to "ciw.list" file
$ ciw list > ciw.list
# Restore your apps from saved list
$ ciw install $(< ciw.list)
By default, all apps are installed to main
group.
You can change group by -g
or --group
option or $CIW_GROUP
environment variable.
$ ciw -g local install cargo:ripgrep
Installed app is placed at each group, but CLIs are linked at $CIW_INSTALL_PATH
as same.
ciw list
lists only the specified group.
Installed apps are linked from this directory.
You should add this directory to $PATH
.
Default: ${HOME}/.local/bin
Group name.
Default: main
Base directory to place data of ciw
.
Default:
${XDG_DATA_HOME}/ciw
(if${XDG_DATA_HOME}
is present.)${HOME}/.local/share/ciw
Base directory to install apps.
Default: ${CIW_DATA_PATH}/pkg/${CIW_GROUP}
Some plugin makes cache data under this directory.
Default:
${XDG_CACHE_HOME}/ciw
(if${XDG_CACHE_HOME}
is present.)${HOME}/.cache/ciw
thinca thinca@gmail.com