Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/solidsnack/taskl
https://github.com/solidsnack/taskl
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/solidsnack/taskl
- Owner: solidsnack
- License: other
- Created: 2010-10-06T05:58:28.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2013-04-23T17:14:33.000Z (over 11 years ago)
- Last Synced: 2023-04-09T12:18:40.407Z (over 1 year ago)
- Language: Haskell
- Homepage:
- Size: 716 KB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
SYNOPSIS
taskl // * <
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 bashThe 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 // *
./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