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