{"id":20704127,"url":"https://github.com/solidsnack/taskl","last_synced_at":"2025-04-23T00:48:48.695Z","repository":{"id":66073508,"uuid":"965699","full_name":"solidsnack/taskl","owner":"solidsnack","description":null,"archived":false,"fork":false,"pushed_at":"2013-04-23T17:14:33.000Z","size":733,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-23T00:48:40.215Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solidsnack.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-10-06T05:58:28.000Z","updated_at":"2020-03-10T03:47:03.000Z","dependencies_parsed_at":"2023-02-19T22:15:38.557Z","dependency_job_id":null,"html_url":"https://github.com/solidsnack/taskl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Ftaskl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Ftaskl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Ftaskl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidsnack%2Ftaskl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solidsnack","download_url":"https://codeload.github.com/solidsnack/taskl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250348878,"owners_count":21415910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T01:11:10.308Z","updated_at":"2025-04-23T00:48:48.678Z","avatar_url":"https://github.com/solidsnack.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"SYNOPSIS\n       taskl //\u003ctask\u003e \u003carg\u003e* \u003c \u003ctaskl.yaml\u003e\n       taskl (-v | --version)\n       taskl (-h | --help)\n\nDESCRIPTION\n       Task/L  compiles  a  system configuration, described in YAML, to a Bash\n       script which can be used to instantiate the configuartion.\n\n       The YAML files describes tasks which have a body  and  dependencies  on\n       other  tasks. Tasks can accept arguments, which are templated in to the\n       commands that make up the body and can be passed on  to  the  dependen-\n       cies.\n\n       The  body of a Task/L task is a list commands, where each command is an\n       array of strings (without any of the usual shell  escaping  headaches).\n       If the headword of the command is an HTTP or HTTPS URL, then the target\n       of the URL will be downloaded, marked executable and run with the given\n       arguments at run time.\n\nDEPENDENCIES\n       Scripts generated by taskl rely on bash and curl.\n\nAPPLICATION\n       taskl //nginx \u003c example/servers.yaml | ssh user@host.com sudo bash\n\n       The  generated scripts can be given arguments to run specific task bod-\n       ies (for debugging), to show the plan and to  show  the  subtasks  that\n       were compiled in.\n\n       taskl //nginx \u003c example/servers.yaml \u003e nginx.bash\n\n       chmod ug+x nginx.bash\n\n       # Show help for installer script.\n       ./nginx.bash -h\n        USAGE: ./nginx.bash (-0)?\n               ./nginx.bash show (-0)?\n               ./nginx.bash //\u003ctask\u003e \u003carg\u003e*\n               ./nginx.bash list\n\n         ...\n\n       ./nginx.bash show\n       * //nginx\n       *  //apt -y install nginx-extras\n       *   //apt.ppa nginx/stable\n       *    //apt.ppa.setup\n       *   //apt.up\n\n       # Null separated variant of the above.\n       ./nginx.bash show -0\n\n       ./nginx.bash list\n       //apt\n       //apt.ppa\n       //apt.ppa.setup\n       //apt.up\n       //nginx\n\n       # Perform installation, displaying success (or failure) of each task as it\n       # is completed.\n       ./nginx.bash\n       * //nginx\n       *  //apt -y install nginx-extras\n       *   //apt.ppa nginx/stable\n       *    //apt.ppa.setup\n       +    //apt.ppa.setup\n       +   //apt.ppa nginx/stable\n       *   //apt.up\n       +   //apt.up\n       +  //apt -y install nginx-extras\n       + //nginx\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidsnack%2Ftaskl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidsnack%2Ftaskl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidsnack%2Ftaskl/lists"}