Looks very nice. You should consider supporting rsync for the upload
command.

On Jul 6, 10:36 pm, Damon Snyder <drsny...@gmail.com> wrote:
> Hello,
> I wanted to let everyone know about a tool I have been working on. I'm
> calling it gantry (a type of crane that I see every day on my commute
> on BART to SF and inspired by crane). I started working on it after
> seeing crane (https://github.com/getwoven/crane) and seeing the
> possibilities while also suffering the frustration of using capistrano
> for deployment of a few non-rails apps (PHP to be specific). I was
> longing for something simpler and found fabric (http://fabfile.org)
> but I was disappointed when I learned that all commands are executed
> sequentially (this has since been fixed I believe). I also wanted to
> spend more time with clojure and see how it could be used for system
> administration and scripting.
>
> Gantry comes in two parts. The first is a command line tool and task
> macro. You define tasks and the commands specified in those tasks
> (provided by gantry.run) are run in parallel on each host using agents/
> send-off. Here is a quick start:
>
> $ curl -Lhttps://github.com/downloads/drsnyder/gantry/gantry>
> gantry; chmod +x gantry
>
> $ cat > gantryfile
> (use 'gantry.run)
> (task hello
>    (run (format "echo \"hello %s at $(hostname)\"" (:name (get-args
> (get-config))))))
> ^D
>
> $ ./gantry -H one.myhost.com,two.myhost.com -t hello -s name=bob
> INFO [one.myhost.com] hello bob at one.myhost.com
> INFO [two.myhost.com] hello bob at two.myhost.com
>
> The second part is a library for running commands remotely on one or
> more hosts. Here are some examples:
>
> (use 'gantry.run)
>
> (remote "host.com" "yum install -y atop")
> (remote "host.com" "yum install -y atop" {:user "deployer"})
>
> (remote* ["host.com", "host2.com"] "yum install -y atop" {:user
> "deployer"})
>
> (upload "host.com" "filea" "/tmp")
> (upload "host.com" ["filea", "fileb"] "/tmp" {:port 222})
>
> (upload* ["host.com", "host2.com"] ["filea", "fileb"] "/tmp" {:id "/
> home/deployer/my-key"})
>
> The jar is in clojars. Use [gantry "0.0.1-SNAPSHOT"] in your
> dependencies. Seehttps://github.com/drsnyder/gantryfor the
> documentation and source.
>
> Feedback welcome!
>
> Damon

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to