GithubHelp home page GithubHelp logo

taskl's Introduction

SYNOPSIS
       taskl //<task> <arg>* < <taskl.yaml>
       taskl (-v | --version)
       taskl (-h | --help)

DESCRIPTION
       Task/L  compiles  a  system configuration, described in YAML, to a Bash
       script which can be used to instantiate the configuartion.

       The YAML files describes tasks which have a body  and  dependencies  on
       other  tasks. Tasks can accept arguments, which are templated in to the
       commands that make up the body and can be passed on  to  the  dependen-
       cies.

       The  body of a Task/L task is a list commands, where each command is an
       array of strings (without any of the usual shell  escaping  headaches).
       If the headword of the command is an HTTP or HTTPS URL, then the target
       of the URL will be downloaded, marked executable and run with the given
       arguments at run time.

DEPENDENCIES
       Scripts generated by taskl rely on bash and curl.

APPLICATION
       taskl //nginx < example/servers.yaml | ssh [email protected] sudo bash

       The  generated scripts can be given arguments to run specific task bod-
       ies (for debugging), to show the plan and to  show  the  subtasks  that
       were compiled in.

       taskl //nginx < example/servers.yaml > nginx.bash

       chmod ug+x nginx.bash

       # Show help for installer script.
       ./nginx.bash -h
        USAGE: ./nginx.bash (-0)?
               ./nginx.bash show (-0)?
               ./nginx.bash //<task> <arg>*
               ./nginx.bash list

         ...

       ./nginx.bash show
       * //nginx
       *  //apt -y install nginx-extras
       *   //apt.ppa nginx/stable
       *    //apt.ppa.setup
       *   //apt.up

       # Null separated variant of the above.
       ./nginx.bash show -0

       ./nginx.bash list
       //apt
       //apt.ppa
       //apt.ppa.setup
       //apt.up
       //nginx

       # Perform installation, displaying success (or failure) of each task as it
       # is completed.
       ./nginx.bash
       * //nginx
       *  //apt -y install nginx-extras
       *   //apt.ppa nginx/stable
       *    //apt.ppa.setup
       +    //apt.ppa.setup
       +   //apt.ppa nginx/stable
       *   //apt.up
       +   //apt.up
       +  //apt -y install nginx-extras
       + //nginx

taskl's People

Contributors

solidsnack avatar meiersi avatar

Stargazers

 avatar Henrik Feldt avatar Fabian Linzberger avatar  avatar Aaron Culich avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

Forkers

meiersi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.