Skip to main content

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

Details

Status Inactive
Language Racket
License MIT
Role Maintainer

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)