starship-butler
v8.0.0
Published
Your best butler, helping you manage the whole development "starship". π
Maintainers
Readme
Starship Butler
[!Caution]
This package is still in development, and the API may change frequently.
[!Note]
This is an "opinionated" "butler", so that it's not suitable for everyone.
Your best butler, helping you manage the whole development "starship". π
Features
- π Quick management of your application configurations & local project configurations
- π¦ Built-in presets for popular tools (Git, Oxlint, ESLint, etc.)
- π§° Easy to use CLI interface
- βοΈ Powered by Bun & TypeScript
- π Support symlink mode (experimental)
- ...
Usage
Install globally with node package manager (bun, npm, yarn, pnpm, etc.):
bun install starship-butler -gRun the cli and get help info with --help flag:
butler --helpPreset
Command preset helps you to preset your application configurations.
butler preset [...options]Applying all presets:
butler preset --allSpecifying included preset id pattern:
butler preset --include <preset_id_pattern>See help info for more details:
butler preset --helpSet
Command Set helps you to set local project configurations.
butler set <source_pattern> <target> [...options]If source_pattern does not contain / character, it will be automatically prefix with ** in
order to match files in all sub-directories simply. In other word, butler set .eslintrc.json ./project/ is equivalent to butler set **/.eslintrc.json ./project/.
Notice that, if target is not exists yet, butler will judge whether it's a file path or a directory path according to the end character:
- If
targetis a directory, butler will allows you to choose multiple matched files - ...Otherwise, butler will only allows you to choose one matched file
For example, butler set .eslintrc.json ./project/ will copy all the chosen files to ./project, while butler set .eslintrc.json ./project will copy the only one chosen file to . and rename it to project.
See help info for more details:
butler set --helpTodos
Preset
- [x] List all built-in presets using
--listflag - [x] Better default target file name, for example, for source
assets/project/linter/eslint/library/_eslint.config.js, the default target file name should beeslint.config.js, not_eslint.config.js(without the leading underscore) - [ ] Backup before applying
- [ ] Restore backup using
--restoreflag - [ ] Restore backup when uninstalling (Prompt to user whether to restore backup or not)
Set
- [x] Better default target file name, for example, for source
assets/project/linter/eslint/library/_eslint.config.js, the default target file name should beeslint.config.js, not_eslint.config.js(without the leading underscore)
