8000 GitHub - xteen16/sake: :robot: sake is a task runner for local and remote hosts
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ sake Public
forked from alajmo/sake

🤖 sake is a task runner for local and remote hosts

License

Notifications You must be signed in to change notification settings

xteen16/sake

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

The MIT License (MIT)

Copyright (c) 2022 Samir Alajmovic

About

🤖 sake is a task runner for local and remote hosts

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 85.2%
  • Roff 12.3%
  • Shell 1.6%
  • Other 0.9%
0