Flexible automation in Racket
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Wesley Kerfoot 428e5e9c6c
Merge pull request #1 from weskerfoot/update-readme
5 years ago
bolt Reorganize things a bit 5 years ago
.gitignore update with WIP AST/code generator, fix tar mistake 6 years ago
.travis.yml reorganize package 6 years ago
LICENSE.txt update license 6 years ago
README.md Merge branch 'master' of github.com:nisstyre56/Bolt 5 years ago

README.md

Bolt

Bolt is an automation DSL, similar to http://fabfile.org

It runs tasks concurrently. It is currently only experimental but can be used for basic tasks.

Installation

git clone git@github.com:weskerfoot/Bolt.git
raco pkg install ./bolt

Example:

#! /usr/bin/env racket
#lang racket

(require bolt)

; This is based on an entry in ~/.ssh/config
(define metaverse
    (remote
    #:host "hostname"
    #:user "alice"
    #:key "/home/alice/.ssh/id_rsa.key"))

(define (deploy)
  (with-host metaverse
    (with-shell-vars
      (["FOO" "BAR"])
      (become "alice"
        (copy-dir "../mycode" "/home/alice/mycode")

        (with-cwd "/home/alice/mycode"

          (become "root"
            (exec "pip install pipenv"))

          (with-cwd "project"
            (exec "pipenv install")))))))
(deploy)