RPK
---
A lightweight, cross-platform cli package manager.
### Installation
Download the latest release from the [releases page](https://github.com/wfxr/rpk/releases)
or just run the following command:
```bash
curl -fsSL https://raw.githubusercontent.com/wfxr/rpk/main/scripts/install \
| bash -s -- --to ~/bin
```
You can port the configuration from remote at the same time by specifying the `--init` option:
```bash
# Useful when you want to quickly install `rpk` and restore packages on a new environment (like container).
curl -fsSL https://raw.githubusercontent.com/wfxr/rpk/main/scripts/install \
| bash -s -- --to ~/bin --init https://raw.githubusercontent.com/wfxr/rpk/main/demo/packages.toml
```
### Usage
To access the packages installed by rpk, you need to run the following command or add it to your shell rc file:
```bash
source <(rpk env)
```
There are several ways to add a package using `rpk`. The most simple way is to using `rpk add`:
```
$ rpk add sharkdp/fd
```
If you don't remember the exact repo name, you can run `rpk search <keyword>` and install it interactively:
```
$ rpk search ripgrep
? Select a package
> ★ 47026 BurntSushi/ripgrep ripgrep recursively searches directories for a regex pattern while respecting your gitignore
★ 6478 phiresky/ripgrep-all rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
★ 540 jremmen/vim-ripgrep Use RipGrep in Vim and display results in a quickfix list
★ 317 learnbyexample/learn_gnugrep_ripgrep Example based guide to mastering GNU grep and ripgrep
★ 108 microsoft/vscode-ripgrep For consuming the ripgrep binary from microsoft/ripgrep-prebuilt in a Node project
★ 468 dajva/rg.el Emacs search tool based on ripgrep
★ 711 Wilfred/deadgrep fast, friendly searching with ripgrep and Emacs
★ 101 cosmicexplorer/helm-rg ripgrep is nice
★ 1413 Gruntfuggly/todo-tree Use ripgrep to find TODO tags and display the results in a tree view
★ 149 chinanf-boy/ripgrep-zh 中文翻译:<BurntSushi/ripgrep> 一个面向行的搜索工具 ❤️ 校对 ✅
[↑↓ to move, enter to select, type to filter]
```
You can also edit the configuration file directly and run `rpk sync`. The config file is located at `~/.config/rpk/packages.toml` by default. Here is a [sample](demo/packages.toml):
```toml
# You can manage rpk by itself
[pkgs.rpk]
repo = "wfxr/rpk"
desc = "A lightweight, cross-platform cli package manager."
[pkgs.fzf]
repo = "junegunn/fzf"
desc = ":cherry_blossom: A command-line fuzzy finder"
[pkgs.fd]
repo = "sharkdp/fd"
desc = "A simple, fast and user-friendly alternative to 'find'"
[pkgs.rg]
repo = "BurntSushi/ripgrep"
desc = "ripgrep recursively searches directories for a regex pattern while respecting your gitignore"
[pkgs.eza]
repo = "eza-community/eza"
desc = "A modern alternative to ls"
[pkgs.bat]
repo = "sharkdp/bat"
desc = "A cat(1) clone with wings."
```
### Credits
`rpk` is inspired by [sheldon](https://github.com/rossmacarthur/sheldon), an awesome shell plugin manager I'm currently using.
### License
`rpk` is distributed under the terms of both the MIT License and the Apache License 2.0.
See the [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) files for license details.