Download a prebuilt executable binary for your operating system from the GitHub releases page.
Unzip the archive and place the executable binary wherever you would like to run it from. Additionally consider adding the location directory in the PATH variable if you would like the kindly command to be available everywhere.
Compile
Clone
git clone https://github.com/borkod/kindly
Build using make
TODO
make build
Build using go
cd kindly
go build .
Usage
Usage:
kindly [command]
Available Commands:
check Check if a package is available.
help Help about any command
install Installs one or many packages.
list Lists available packages.
remove Removes a previously installed package.
template Generate a Kindly YAML spec template for a GitHub repo.
Flags:
--Arch string Architecture (default is current architecture)
--ManifestDir string Default kindly manifests directory (default is $HOME/.kindly/manifests/)
--OS string Operating System (default is current OS)
--OutBinDir string Default binary file output directory (default is $HOME/.kindly/bin/)
--OutCompletionDir string Default completions file output directory (default is $HOME/.kindly/completion/)
--OutManDir string Default man pages output directory (default is $HOME/.kindly/man/)
--Source string Source of package spec files (default "https://raw.githubusercontent.com/borkod/kindly-specs/main/specs/")
--completion string Completion shell setting (default "bash")
--config string config file (default is $HOME/.kindly/.kindly.yaml)
-h, --help help for kindly
-v, --verbose Verbose output
--version version for kindly
Roadmap / TODO
Refactor Cobra commands to remove init
Add functionality to accept sources of spec files as an array; Search for a package through the list of sources.
Testing
Add more packages
Github workflows
Install command:
Update command to accept local Kindly spec YAML files, or full remote URL
If user installs a new version of a package that has less files or different file names than a previously installed version - remove may not properly remove all files as the package manifest (and hence file names) will be rewritten. User will have to manually delete any unwanted files from the previous version. Ensure this is documented.
Add Update command
Updates all installed packages if new version available
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.