Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kyu08/fzf-make
A command line tool that executes make target using fuzzy finder with preview window.
https://github.com/kyu08/fzf-make
cli crates-io fuzzy-finder fzf hacktoberfest make makefile ratatui rust terminal tui
Last synced: about 1 month ago
JSON representation
A command line tool that executes make target using fuzzy finder with preview window.
- Host: GitHub
- URL: https://github.com/kyu08/fzf-make
- Owner: kyu08
- License: mit
- Created: 2023-03-08T17:26:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T03:03:33.000Z (about 1 month ago)
- Last Synced: 2024-10-31T11:39:17.410Z (about 1 month ago)
- Topics: cli, crates-io, fuzzy-finder, fzf, hacktoberfest, make, makefile, ratatui, rust, terminal, tui
- Language: Rust
- Homepage:
- Size: 29.7 MB
- Stars: 79
- Watchers: 2
- Forks: 9
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-rust - fzf-make - make](https://crates.io/crates/fzf-make)] - A command line tool that executes make target using fuzzy finder with preview window. [![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make) (Development tools / Web Servers)
- awesome-ratatui - fzf-make - A command line tool that executes make target using fuzzy finder with preview window. (💻 Apps / 🚀 Productivity and Utilities)
- awesome-rust - fzf-make - make](https://crates.io/crates/fzf-make)] — A command line tool that executes make target using fuzzy finder with preview window. [![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make) (Development tools / Web Servers)
- fucking-awesome-rust - fzf-make - make](crates.io/crates/fzf-make)] - A command line tool that executes make target using fuzzy finder with preview window. [![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make) (Development tools / Web Servers)
- fucking-awesome-rust - fzf-make - make](crates.io/crates/fzf-make)] - A command line tool that executes make target using fuzzy finder with preview window. [![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make) (Development tools / Web Servers)
README
`fzf-make` is a command line tool that executes make target using fuzzy finder with preview window.
![License:MIT](https://img.shields.io/static/v1?label=License&message=MIT&color=blue&style=flat-square)
[![Latest Release](https://img.shields.io/github/v/release/kyu08/fzf-make?style=flat-square)](https://github.com/kyu08/fzf-make/releases/latest)
[![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make)# 🛠️ Features
- Select and execute a make target using fuzzy-finder with a preview window by running `fzf-make`!
- Execute the last executed target(By running `fzf-make --repeat`.)
- Command history
- Support `include` directive
- **(Scheduled to be developed)** Support config file# 👓 Prerequisites
- **(If you install fzf-make via a package manager other than Homebrew)** [bat](https://github.com/sharkdp/bat)
- In the future, we intend to make it work with `cat` as well, but currently it only works with `bat`.# 📦 Installation
## macOS
### Homebrew
You don't need to install `bat` because `fzf-make` will install it automatically via Homebrew.```sh
# install
brew install kyu08/tap/fzf-make
``````sh
# update
brew update
brew upgrade fzf-make
```## Arch Linux
`fzf-make` can be installed from the [AUR](https://aur.archlinux.org/packages/fzf-make) using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). For example:
```sh
paru -S fzf-make
```## NixOS / Nix (package manager)
`fzf-make` can be run from the repository (latest version)
```sh
nix run github:kyu08/fzf-make
```Or from the nixpkgs (channel >= 23.05)
```sh
nix run nixpkgs#fzf-make
```> **Note**
> You may need to enable experimental feature. In that case, execute the following command to enable them
> `echo "experimental-features = nix-command flakes" | tee ~/.config/nix/nix.conf`## OS-independent method
### Cargo
```sh
cargo install --locked fzf-make
```# 💡 Usage
## Run target using fuzzy finder
1. Execute `fzf-make` in the directory include makefile(file name should be one of `GNUmakefile`, `makefile`, `Makefile`)
1. Select make command you want to execute. If you type some characters, the list will be filtered.
## Run target from history
1. Execute `fzf-make` in the directory include makefile(file name should be one of `GNUmakefile`, `makefile`, `Makefile`)
1. Press `Tab` to move to the history pane.
1. Select make command you want to execute.
## Commands Supported
| Command | Description |
|--------|--------|
| `fzf-make` | Launch fzf-make |
| `fzf-make --repeat` / `fzf-make -r` / `fzf-make repeat` | Execute last executed target |
| `fzf-make --history` / `fzf-make -h` / `fzf-make history` | Launch fzf-make with the history pane focused |
| `fzf-make --help` / `fzf-make help` | Show help |
| `fzf-make --version` / `fzf-make -v` / `fzf-make version` | Show version |# 💻 Development
1. Clone this repository
1. Change the codes
1. Run `make run`To execute test, run `make test`(needs `nextest`).
## nix
Or you can use `nix` to create a development shell with the project dependencies.Within the repo root, execute the following command:
```nix
nix develop
```# 👥 Contribution
- Contributions are welcome!
- If you have a Feature request, please create an issue first.
- If you have added fzf-make to some package manager, please let me know. (or please send a PR to add how to install via the package manager in the `README.md`)
- If you have any questions, feel free to create an issue and ask.# 🗒 Related Article(s)
- (Japanese)[Makefileに定義されたtargetをfzfで選択して実行するCLIツールをRustでつくった](https://blog.kyu08.com/posts/fzf-make)