All Projects β†’ jjzcru β†’ elk

jjzcru / elk

Licence: MIT license
🦌 Minimalist yaml based task runner

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
powershell
5483 projects

Projects that are alternatives of or similar to elk

ansible-taskrunner
Ansible Taskrunner - ansible-playbook wrapper with YAML-abstracted python click cli options!
Stars: ✭ 14 (-67.44%)
Mutual labels:  yaml, task-runner
go-config
Configuration file loader for Go
Stars: ✭ 27 (-37.21%)
Mutual labels:  yaml
gitlabform
πŸ— Specialized "configuration as a code" tool for GitLab
Stars: ✭ 332 (+672.09%)
Mutual labels:  yaml
alfons
πŸš€ Task runner for Lua and MoonScript.
Stars: ✭ 17 (-60.47%)
Mutual labels:  task-runner
zettelgeist
A less-is-more (distributed) notetaking application. Designed specifically for those who prefer working with the command line and want to do crazy indexing, analysis, and transformation of notes. Aimed at but not limited to scholarly research projects.
Stars: ✭ 25 (-41.86%)
Mutual labels:  yaml
obp-apis
OpenBankingProject.ch Community APIs
Stars: ✭ 18 (-58.14%)
Mutual labels:  yaml
bask
A runner and framework for command-centric Bash scripts.
Stars: ✭ 31 (-27.91%)
Mutual labels:  task-runner
AUCR
Analyst Unknown Cyber Range - a micro web service framework
Stars: ✭ 24 (-44.19%)
Mutual labels:  yaml
gilbert
Build system and task runner for Go projects
Stars: ✭ 105 (+144.19%)
Mutual labels:  task-runner
coqpit
Simple but maybe too simple config management through python data classes. We use it for machine learning.
Stars: ✭ 67 (+55.81%)
Mutual labels:  yaml
Prinder
Free Pull Request reminder for Github. Has configurations to post reminders to Slack and email along with jinja templating
Stars: ✭ 21 (-51.16%)
Mutual labels:  yaml
eslint-plugin-yml
This ESLint plugin provides linting rules for YAML.
Stars: ✭ 40 (-6.98%)
Mutual labels:  yaml
kahoy
Simple Kubernetes raw manifests deployment tool
Stars: ✭ 33 (-23.26%)
Mutual labels:  yaml
zf-dependency-injection
Advanced dependency injection for laminas framework
Stars: ✭ 17 (-60.47%)
Mutual labels:  yaml
consulator
Import and synchronize your Consul KV data from JSON and YAML
Stars: ✭ 27 (-37.21%)
Mutual labels:  yaml
representable
Maps representation documents from and to Ruby objects. Includes JSON, XML and YAML support, plain properties and compositions.
Stars: ✭ 689 (+1502.33%)
Mutual labels:  yaml
remark-frontmatter
remark plugin to support frontmatter (YAML, TOML, and more)
Stars: ✭ 167 (+288.37%)
Mutual labels:  yaml
paerser
No description or website provided.
Stars: ✭ 38 (-11.63%)
Mutual labels:  yaml
duty
A simple task runner.
Stars: ✭ 36 (-16.28%)
Mutual labels:  task-runner
HsYAML
YAML 1.2 implementation in pure Haskell
Stars: ✭ 50 (+16.28%)
Mutual labels:  yaml

Travis CI Coverage Status Release

Elk

Elk 🦌 is a minimalist, YAML based task runner that aims to help developers to focus on building cool stuff, instead of remembering to perform tedious tasks.

Since it's written in Go, most of the commands runs across multiple operating systems (Linux, macOS, Windows) and use the same syntax between them thanks to this library.

Why should i use this? You can watch some Use Cases

Table of contents

Getting Started

The main use case for elk is that you are able to run any command/s in a declarative way in any path.

By default the global file that is going to be used is ~/ox.yml. You can change this path if you wish to use another file by setting the env variable ELK_FILE.

elk will first search if there is a ox.yml file in the current directory and use that first, if the file is not found it will use the global file.

This enables the user to have multiples ox.yml one per project while also having one for the system itself.

Installation

Bash

Installation with cURL and sh thanks to the project Go Binaries.

curl -sf https://gobinaries.com/jjzcru/elk | sh

Download

  1. Grab the latest binary of your platform from the Releases page.
  2. If you are running on macOS or Linux, run chmod +x elk to give executable permissions to the binary. If you are on windows you can ignore this step.
  3. Add the binary to $PATH.
  4. Run elk version to make sure that the binary is installed.

Syntax

The syntax consists on two main section one is global which sets defaults for all the tasks and the other is tasks which defines the behavior for each of the task.

To learn about the properties go to Syntax Documentation.

Example

version: β€˜1’
env_file: /tmp/test.env
env:
  FOO: BAR
tasks:
  hello:
    description: β€œPrint Hello World”
    env:
      FOO: Hello
      BAR: World
    cmds:
      - echo $FOO $BAR

Use Cases

The goal of elk is to run tasks in a declarative way, anything that you could run on your terminal, you can run behind elk. If you handle multiple projects, languages, task or you want to automate your workflow you can use elk to achieve that, just declare you workflow and elk will take care of the rest.

To learn about some use cases for elk go to Use Cases to figure out πŸ˜‰.

Commands

Command Description Syntax
cron Run one or more task as a cron job ⏱ elk cron [crontab] [tasks] [flags]
exec Execute ad-hoc commands ⚑ elk exec [commands] [flags]
init This command creates a dummy file in current directory elk init [flags]
logs Attach logs from a task to the terminal πŸ“ elk logs [task] [flags]
ls List tasks elk ls [flags]
run Run one or more tasks πŸ€– elk run [tasks] [flags]
version Display version number elk version [flags]
server Start a graphql server βš›οΈ elk server [flags]

Roadmap

Each release has a particular idea in mind and the tasks inside that release are focusing on that main idea.

To learn more about the progress and what is being planned go to Projects.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].