sakesake is a command runner for local and remote hosts. You define servers and tasks in sake.yaml file and then run the tasks on the servers.
This readme is also accessible on sakecli.com.
sake has tons of features:
sake ssh <server>sake list servers|taskssake run <task> --output tablesake edit task <task>sake.yaml configs
Interested in managing your git repositories in a similar way? Check out mani!
sake is available on Linux and Mac.
Binaries are available on the release page
via cURL
sh
curl -sfL https://raw.githubusercontent.com/alajmo/sake/main/install.sh | sh
via Homebrew
sh
brew tap alajmo/sake
brew install sake
via MacPorts
sh
sudo port install sake
via Arch
sh
pacman -S sake
via pkg
sh
pkg install sake
Via Go
sh
go install github.com/alajmo/sake@latest
Auto-completion is available via sake completion bash|zsh|fish and man page via sake gen.
Requires go 1.19 or above.
Build and run the executable ```sh make build && ./dist/sake
make build-all ```
Run the following command:
$ sake init
Initialized sake in /tmp/sake
- Created sake.yaml
Following servers were added to sake.yaml
Server | Host
-----------+---------
localhost | 0.0.0.0
# List all servers
$ sake list servers
Server | Host
-----------+---------
localhost | 0.0.0.0
# List all tasks
$ sake list tasks
Task | Description
------+-------------
ping | Pong
# Run Task
$ sake run ping --all
TASK ping: Pong ************
0.0.0.0 | pong
# Count number of files in each server in parallel
$ sake exec --all --output table --strategy=free 'find . -type f | wc -l'
Server | Output
-----------+--------
localhost | 1
Check out the examples page for more advanced examples and the recipes page for a list of useful recipes.
The MIT License (MIT)
Copyright (c) 2022 Samir Alajmovic