github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

kennethkalmer / daemon-kit

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 301
    • 16
  • Source
  • Commits
  • Network (16)
  • Issues (3)
  • Downloads (14)
  • Wiki (2)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (5)
    • deploy_paths
    • fork_pool_experiment
    • master ✓
    • stacks
    • state_file
  • Tags (14)
    • 0.1.7.12
    • 0.1.7.11
    • 0.1.7.10
    • 0.1.7.9
    • 0.1.7.8
    • 0.1.7.7
    • 0.1.7.5
    • 0.1.7.4
    • 0.1.7
    • 0.1.6
    • 0.1.5
    • 0.1.2
    • 0.1.1
    • 0.1.0
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

Daemon Kit aims to simplify creating Ruby daemons by providing a sound application skeleton (through a generator), task specific generators (jabber bot, etc) and robust environment management code. — Read more

  cancel

http://kennethkalmer.github.com

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

Fixed issues with dashes in yaml config files (closes #12) 
kennethkalmer (author)
Thu Feb 04 14:28:54 -0800 2010
commit  61156b3b28f6f96f7614f2ae4a1c9d0064241c0e
tree    f282839f14ce84346d9ceb81badba8c3e8eec8f0
parent  c573a54d9a77203fb89b3c5d93c156f371bff6fc
daemon-kit /
name age
history
message
file .gitignore Thu Jul 16 13:43:35 -0700 2009 Improved config hash [kennethkalmer]
file Configuration.txt Wed Aug 12 07:49:47 -0700 2009 Added note for privilege dropping issues on OSX... [kennethkalmer]
file Deployment.txt Sat Jun 06 14:10:33 -0700 2009 Docs on deployment [kennethkalmer]
file History.txt Sun Jan 24 14:39:27 -0800 2010 Noted thor in docs [kennethkalmer]
file Logging.txt Wed Sep 16 09:28:46 -0700 2009 Added some clarity on logging [kennethkalmer]
file Manifest.txt Sun Jan 24 05:41:44 -0800 2010 Updated manifest [kennethkalmer]
file PostInstall.txt Fri Aug 14 07:07:54 -0700 2009 Changed from daemon_kit to daemon-kit (generator) [kennethkalmer]
file README.rdoc Sun Jan 24 14:39:27 -0800 2010 Noted thor in docs [kennethkalmer]
file Rakefile Sun Jan 24 14:39:57 -0800 2010 Removed rubigen dependency [kennethkalmer]
file RuoteParticipants.txt Sat Aug 01 02:51:35 -0700 2009 Documentation for writing ruote participants [kennethkalmer]
file TODO.txt Sun Jan 24 06:41:38 -0800 2010 Documentation update for XMPP [kennethkalmer]
directory bin/ Sun Jan 24 12:09:54 -0800 2010 Converted application generator to Thor [kennethkalmer]
directory config/ Sat May 30 17:01:45 -0700 2009 Docs and docs [kennethkalmer]
file daemon-kit.gemspec Sun Jan 24 14:41:51 -0800 2010 Gemspec for 0.1.8pre [kennethkalmer]
directory lib/ Thu Feb 04 14:28:54 -0800 2010 Fixed issues with dashes in yaml config files (... [kennethkalmer]
directory script/ Tue Jan 06 22:42:44 -0800 2009 Cleaned up newgem output [kennethkalmer]
directory spec/ Thu Feb 04 14:28:54 -0800 2010 Fixed issues with dashes in yaml config files (... [kennethkalmer]
directory tasks/ Sun Nov 29 22:24:54 -0800 2009 Switched to jeweler for a 0.1.7.11 [kennethkalmer]
directory templates/ Tue Oct 06 05:15:17 -0700 2009 god configs should make more sense [kennethkalmer]
directory test/ Sun Jan 24 06:40:09 -0800 2010 Removed jabber generator [kennethkalmer]
directory vendor/ Mon Jun 01 14:54:36 -0700 2009 Exception mails now handled by TMail [kennethkalmer]
README.rdoc

Daemon Kit

  • kit.rubyforge.org/daemon-kit/rdoc/
  • kit.rubyforge.org/daemon-kit (coming soon)
  • groups.google.com/group/daemon-kit (daemon-kit@googlegroups.com)
  • #daemon-kit on Freenode

Description

Daemon Kit aims to simplify creating Ruby daemons by providing a sound application skeleton (through a generator), task specific generators (jabber bot, etc) and robust environment management code.

Using simple built-in generators it is easy to created evented and non-evented daemons that perform a multitude of different tasks.

Supported generators:

  • XMPP bot (evented)
  • AMQP consumer (evented)
  • Nanite agent
  • Cron-style daemon
  • ruote remote participants

Features/Problems

  • Build it
  • Review TODO.txt

Synopsis

  $ daemon-kit -h

Get some help

  $ daemon-kit [/path/to/your/daemon] [options]

The above command generates a skeleton daemon environment for you to adapt.

  $ daemon-kit [/path/to/your/daemon] -i xmpp

Use the ‘xmpp’ generator instead of the default one.

Generators

Currently six generators exist: default, xmpp, amqp, cron, nanite & ruote

The default generator creates a simple daemon with an infinite loop inside that you can adapt.

XMPP Generator

The jabber generator creates a simple daemon that leverages the blather gem to process inbound messages. The daemon will manage the roster and other little tasks, leaving you to provide the hooks for processing messages, presence notifications and subscription request.

Cron Generator

The cron generator creates a simple daemon that leverages the rufus-scheduler gem to create a simple cron-lie daemon. Please be aware that this daemon could never be a replacement for the battle-tested cron utility shipped standard with most *nix distributions.

AMQP Consumer Generator

The AMQP generator creates a simple daemon that has all the stub code and configuration in place to help you write AMQP consumers quickly and effectively. The generated daemon relies on the presence of the amqp gem.

Nanite Agent Generator

The nanite agent generator gets you up and running with nanite agents very quickly.

ruote Remote Participants

The ruote remote participant generator speeds up the development of workflow participants that run outside of the Ruby process that houses the engine. Daemon-kit handles all the communication and delegation logic, allowing you to focus purely on your participant’s activities.

Requirements

  • Ruby 1.8.6 or later (developed on 1.9.1)
  • eventmachine-0.12.8
  • rspec (for writing/running your specs)

Generator Requirements

Depending on the generator you choose for your daemon, it might require additional gems to run.

  • xmpp - blather
  • cron - rufus-scheduler (at least version 2.0.0)
  • amqp - amqp
  • nanite - nanite
  • ruote - none, although ruote should probably be running somewhere

The generators are all written using Thor, which is bundled with daemon-kit and not needed for running any of the generators.

Install

Currently recommended to stick to the git repo:

  $ git clone git://github.com/kennethkalmer/daemon-kit.git
  $ rake build
  $ gem install pkg/daemon-kit-X.X.X.gem

Stable versions, when released are available directly from Gemcutter:

  $ gem install daemon-kit

Further reading

  • Configuration.txt
  • Deployment.txt
  • Logging.txt
  • RuoteParticipants.txt
  • www.opensourcery.co.za/tag/daemon-kit/

License

(The MIT License)

Copyright © 2009 Kenneth Kalmer (Internet Exchange CC, Clear Planet Information Solutions Pty Ltd)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ‘Software’), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server