sake

command module
v0.10.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2022 License: MIT Imports: 1 Imported by: 0

README

sake


sake is a command runner for local and remote hosts. You define servers and tasks in a sake.yaml config file and then run the tasks on the servers.

This readme is also accessible on sakecli.com.

sake has tons of features:

  • auto-completion of tasks, servers and tags
  • SSH into servers or docker containers sake ssh <server>
  • list servers/tasks via sake list servers|tasks
  • present task output in a compact table format sake run <task> --output table
  • open task/server in your preferred editor sake edit task <task>
  • import other sake.yaml configs
  • and many more!

demo

Interested in managing your git repositiories in a similar way? Check out mani!

Table of Contents

Installation

sake is available on Linux and Mac.

  • Binaries are available on the release page

  • via cURL

    curl -sfL https://raw.githubusercontent.com/alajmo/sake/main/install.sh | sh
    
  • via Homebrew

    brew tap alajmo/sake
    brew install sake
    
  • Via GO install

    go install github.com/alajmo/sake@latest
    

Auto-completion is available via sake completion bash|zsh|fish and man page via sake gen.

Building From Source

Requires go 1.18 or above.

  1. Clone the repo
  2. Build and run the executable
    make build && ./dist/sake
    
    # To build for all target platforms run (requires goreleaser CLI)
    make build-all
    

Usage

Create a New Sake Config

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

Run Some Commands

# 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 --parallel 'find . -type f | wc -l'

 Server    | Output
-----------+--------
 localhost | 1

What's Next

Check out the examples page for more advanced examples and the recipes page for a list of useful recipes.

Documentation

License

The MIT License (MIT)

Copyright (c) 2022 Samir Alajmovic

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Source: https://github.com/goware/prefixer Singleton module
Source: https://github.com/goware/prefixer Singleton module
dao
run

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL