apphunkd 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +78 -0
- data/TODO +1 -0
- data/VERSION +1 -0
- data/apphunkd.gemspec +258 -0
- data/bin/apphunkd +4 -0
- data/config/arguments.rb +12 -0
- data/config/boot.rb +68 -0
- data/config/environment.rb +23 -0
- data/config/environments/development.rb +2 -0
- data/config/environments/production.rb +2 -0
- data/config/environments/test.rb +2 -0
- data/config/post-daemonize/readme +5 -0
- data/config/pre-daemonize/readme +12 -0
- data/config/pre-daemonize/requires.rb +2 -0
- data/lib/apphunkd.rb +25 -0
- data/lib/apphunkd/api.rb +5 -0
- data/lib/apphunkd/api/service.rb +27 -0
- data/lib/apphunkd/queue.rb +96 -0
- data/lib/apphunkd/remote.rb +29 -0
- data/lib/apphunkd/remote/result.rb +15 -0
- data/libexec/apphunkd-daemon.rb +13 -0
- data/script/console +3 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/lib/apphunkd/api/service_spec.rb +47 -0
- data/spec/lib/apphunkd/queue_spec.rb +129 -0
- data/spec/lib/apphunkd/remote_spec.rb +61 -0
- data/spec/lib/apphunkd_spec.rb +50 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +13 -0
- data/support/apphunkd.initd +47 -0
- data/support/apphunkd.monitrc +3 -0
- data/tasks/rspec.rake +21 -0
- data/vendor/daemon-kit/Configuration.txt +102 -0
- data/vendor/daemon-kit/Deployment.txt +113 -0
- data/vendor/daemon-kit/History.txt +97 -0
- data/vendor/daemon-kit/Logging.txt +92 -0
- data/vendor/daemon-kit/Manifest.txt +166 -0
- data/vendor/daemon-kit/PostInstall.txt +6 -0
- data/vendor/daemon-kit/README.rdoc +130 -0
- data/vendor/daemon-kit/Rakefile +37 -0
- data/vendor/daemon-kit/RuoteParticipants.txt +113 -0
- data/vendor/daemon-kit/TODO.txt +37 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/USAGE +7 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/daemon_kit_generator.rb +161 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/README +48 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/Rakefile +6 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/bin/daemon.erb +7 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/arguments.rb +12 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/boot.rb +68 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/environment.rb +23 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/environments/development.rb +2 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/environments/production.rb +2 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/environments/test.rb +2 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/post-daemonize/readme +5 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/config/pre-daemonize/readme +12 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/lib/daemon.rb +2 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/libexec/daemon.erb +18 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/script/console +3 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/script/destroy +14 -0
- data/vendor/daemon-kit/app_generators/daemon_kit/templates/script/generate +14 -0
- data/vendor/daemon-kit/bin/daemon_kit +18 -0
- data/vendor/daemon-kit/daemon_generators/amqp/USAGE +5 -0
- data/vendor/daemon-kit/daemon_generators/amqp/amqp_generator.rb +65 -0
- data/vendor/daemon-kit/daemon_generators/amqp/templates/config/amqp.yml +28 -0
- data/vendor/daemon-kit/daemon_generators/amqp/templates/config/initializers/amqp.rb +7 -0
- data/vendor/daemon-kit/daemon_generators/amqp/templates/libexec/daemon.rb +37 -0
- data/vendor/daemon-kit/daemon_generators/cron/USAGE +5 -0
- data/vendor/daemon-kit/daemon_generators/cron/cron_generator.rb +64 -0
- data/vendor/daemon-kit/daemon_generators/cron/templates/config/initializers/cron.rb +11 -0
- data/vendor/daemon-kit/daemon_generators/cron/templates/libexec/daemon.rb +43 -0
- data/vendor/daemon-kit/daemon_generators/cucumber/USAGE +11 -0
- data/vendor/daemon-kit/daemon_generators/cucumber/cucumber_generator.rb +38 -0
- data/vendor/daemon-kit/daemon_generators/cucumber/templates/cucumber +8 -0
- data/vendor/daemon-kit/daemon_generators/cucumber/templates/cucumber.rake +13 -0
- data/vendor/daemon-kit/daemon_generators/cucumber/templates/cucumber_environment.rb +2 -0
- data/vendor/daemon-kit/daemon_generators/cucumber/templates/env.rb +7 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/deploy_capistrano_generator.rb +35 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/Capfile +10 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/USAGE +10 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/config/deploy.rb +53 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/config/deploy/production.rb +6 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/config/deploy/staging.rb +6 -0
- data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/config/environments/staging.rb +0 -0
- data/vendor/daemon-kit/daemon_generators/jabber/USAGE +5 -0
- data/vendor/daemon-kit/daemon_generators/jabber/jabber_generator.rb +65 -0
- data/vendor/daemon-kit/daemon_generators/jabber/templates/config/initializers/jabber.rb +7 -0
- data/vendor/daemon-kit/daemon_generators/jabber/templates/config/jabber.yml +26 -0
- data/vendor/daemon-kit/daemon_generators/jabber/templates/libexec/daemon.rb +27 -0
- data/vendor/daemon-kit/daemon_generators/nanite_agent/USAGE +5 -0
- data/vendor/daemon-kit/daemon_generators/nanite_agent/nanite_agent_generator.rb +68 -0
- data/vendor/daemon-kit/daemon_generators/nanite_agent/templates/config/initializers/nanite_agent.rb +6 -0
- data/vendor/daemon-kit/daemon_generators/nanite_agent/templates/config/nanite.yml +35 -0
- data/vendor/daemon-kit/daemon_generators/nanite_agent/templates/lib/actors/sample.rb +11 -0
- data/vendor/daemon-kit/daemon_generators/nanite_agent/templates/libexec/daemon.rb +31 -0
- data/vendor/daemon-kit/daemon_generators/rspec/USAGE +5 -0
- data/vendor/daemon-kit/daemon_generators/rspec/rspec_generator.rb +55 -0
- data/vendor/daemon-kit/daemon_generators/rspec/templates/spec.rb +11 -0
- data/vendor/daemon-kit/daemon_generators/rspec/templates/spec/spec.opts +1 -0
- data/vendor/daemon-kit/daemon_generators/rspec/templates/spec/spec_helper.rb +21 -0
- data/vendor/daemon-kit/daemon_generators/rspec/templates/tasks/rspec.rake +21 -0
- data/vendor/daemon-kit/daemon_generators/ruote/USAGE +5 -0
- data/vendor/daemon-kit/daemon_generators/ruote/ruote_generator.rb +67 -0
- data/vendor/daemon-kit/daemon_generators/ruote/templates/config/amqp.yml +30 -0
- data/vendor/daemon-kit/daemon_generators/ruote/templates/config/initializers/ruote.rb +13 -0
- data/vendor/daemon-kit/daemon_generators/ruote/templates/config/ruote.yml +23 -0
- data/vendor/daemon-kit/daemon_generators/ruote/templates/lib/daemon.rb +4 -0
- data/vendor/daemon-kit/daemon_generators/ruote/templates/lib/sample.rb +26 -0
- data/vendor/daemon-kit/daemon_generators/ruote/templates/libexec/daemon.rb +33 -0
- data/vendor/daemon-kit/lib/daemon_kit.rb +54 -0
- data/vendor/daemon-kit/lib/daemon_kit/abstract_logger.rb +235 -0
- data/vendor/daemon-kit/lib/daemon_kit/amqp.rb +38 -0
- data/vendor/daemon-kit/lib/daemon_kit/application.rb +187 -0
- data/vendor/daemon-kit/lib/daemon_kit/arguments.rb +165 -0
- data/vendor/daemon-kit/lib/daemon_kit/commands/console.rb +38 -0
- data/vendor/daemon-kit/lib/daemon_kit/config.rb +108 -0
- data/vendor/daemon-kit/lib/daemon_kit/console_daemon.rb +2 -0
- data/vendor/daemon-kit/lib/daemon_kit/core_ext.rb +1 -0
- data/vendor/daemon-kit/lib/daemon_kit/core_ext/configurable.rb +96 -0
- data/vendor/daemon-kit/lib/daemon_kit/core_ext/string.rb +22 -0
- data/vendor/daemon-kit/lib/daemon_kit/cron.rb +48 -0
- data/vendor/daemon-kit/lib/daemon_kit/cucumber/world.rb +38 -0
- data/vendor/daemon-kit/lib/daemon_kit/deployment/capistrano.rb +482 -0
- data/vendor/daemon-kit/lib/daemon_kit/em.rb +43 -0
- data/vendor/daemon-kit/lib/daemon_kit/error_handlers/base.rb +32 -0
- data/vendor/daemon-kit/lib/daemon_kit/error_handlers/hoptoad.rb +61 -0
- data/vendor/daemon-kit/lib/daemon_kit/error_handlers/mail.rb +85 -0
- data/vendor/daemon-kit/lib/daemon_kit/exceptions.rb +8 -0
- data/vendor/daemon-kit/lib/daemon_kit/initializer.rb +438 -0
- data/vendor/daemon-kit/lib/daemon_kit/jabber.rb +170 -0
- data/vendor/daemon-kit/lib/daemon_kit/nanite.rb +7 -0
- data/vendor/daemon-kit/lib/daemon_kit/nanite/agent.rb +56 -0
- data/vendor/daemon-kit/lib/daemon_kit/pid_file.rb +61 -0
- data/vendor/daemon-kit/lib/daemon_kit/ruote_participants.rb +119 -0
- data/vendor/daemon-kit/lib/daemon_kit/ruote_pseudo_participant.rb +68 -0
- data/vendor/daemon-kit/lib/daemon_kit/ruote_workitem.rb +169 -0
- data/vendor/daemon-kit/lib/daemon_kit/safety.rb +85 -0
- data/vendor/daemon-kit/lib/daemon_kit/tasks.rb +2 -0
- data/vendor/daemon-kit/lib/daemon_kit/tasks/environment.rake +10 -0
- data/vendor/daemon-kit/lib/daemon_kit/tasks/framework.rake +120 -0
- data/vendor/daemon-kit/lib/daemon_kit/tasks/god.rake +62 -0
- data/vendor/daemon-kit/lib/daemon_kit/tasks/log.rake +8 -0
- data/vendor/daemon-kit/lib/daemon_kit/tasks/monit.rake +29 -0
- data/vendor/daemon-kit/script/console +10 -0
- data/vendor/daemon-kit/script/destroy +14 -0
- data/vendor/daemon-kit/script/generate +14 -0
- data/vendor/daemon-kit/script/txt2html +71 -0
- data/vendor/daemon-kit/spec/abstract_logger_spec.rb +126 -0
- data/vendor/daemon-kit/spec/argument_spec.rb +70 -0
- data/vendor/daemon-kit/spec/config_spec.rb +79 -0
- data/vendor/daemon-kit/spec/configurable_spec.rb +56 -0
- data/vendor/daemon-kit/spec/daemon_kit_spec.rb +7 -0
- data/vendor/daemon-kit/spec/error_handlers_spec.rb +23 -0
- data/vendor/daemon-kit/spec/fixtures/env.yml +15 -0
- data/vendor/daemon-kit/spec/fixtures/noenv.yml +4 -0
- data/vendor/daemon-kit/spec/initializer_spec.rb +26 -0
- data/vendor/daemon-kit/spec/spec.opts +1 -0
- data/vendor/daemon-kit/spec/spec_helper.rb +27 -0
- data/vendor/daemon-kit/tasks/rspec.rake +21 -0
- data/vendor/daemon-kit/templates/god/god.erb +69 -0
- data/vendor/daemon-kit/templates/monit/monit.erb +14 -0
- data/vendor/daemon-kit/test/test_amqp_generator.rb +48 -0
- data/vendor/daemon-kit/test/test_cron_generator.rb +45 -0
- data/vendor/daemon-kit/test/test_daemon-kit_generator.rb +84 -0
- data/vendor/daemon-kit/test/test_daemon_kit_config.rb +28 -0
- data/vendor/daemon-kit/test/test_deploy_capistrano_generator.rb +48 -0
- data/vendor/daemon-kit/test/test_generator_helper.rb +29 -0
- data/vendor/daemon-kit/test/test_helper.rb +7 -0
- data/vendor/daemon-kit/test/test_jabber_generator.rb +49 -0
- data/vendor/daemon-kit/test/test_nanite_agent_generator.rb +49 -0
- data/vendor/daemon-kit/test/test_ruote_generator.rb +45 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail.rb +5 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/address.rb +426 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/attachments.rb +46 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/base64.rb +46 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/compat.rb +41 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/config.rb +67 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/core_extensions.rb +63 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/encode.rb +581 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/header.rb +960 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/index.rb +9 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/interface.rb +1130 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/loader.rb +3 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/mail.rb +578 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/mailbox.rb +495 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/main.rb +6 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/mbox.rb +3 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/net.rb +248 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/obsolete.rb +132 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/parser.rb +1476 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/port.rb +379 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/quoting.rb +118 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/require_arch.rb +58 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/scanner.rb +49 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/scanner_r.rb +261 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/stringio.rb +280 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/utils.rb +337 -0
- data/vendor/daemon-kit/vendor/tmail-1.2.3/tmail/version.rb +39 -0
- data/vendor/daemon-kit/vendor/tmail.rb +13 -0
- metadata +281 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
unless respond_to?(:namespace) # cap2 differentiator
|
|
2
|
+
$stderr.puts "Requires capistrano version 2"
|
|
3
|
+
exit 1
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
require 'config/boot'
|
|
7
|
+
load DaemonKit.framework_root + '/lib/daemon_kit/deployment/capistrano.rb'
|
|
8
|
+
|
|
9
|
+
Dir['config/deploy/recipes/*.rb'].each { |plugin| load(plugin) }
|
|
10
|
+
load 'config/deploy.rb'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
|
|
2
|
+
Capistrano deployment configuration generator completed
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
Review the configuration files in config/deploy.rb and
|
|
6
|
+
config/deploy/*.rb
|
|
7
|
+
|
|
8
|
+
Once you're happy with the configurations, you can review
|
|
9
|
+
a list of available capistrano commands by running `cap -T'
|
|
10
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Modified capistrano recipe, based on the standard 'deploy' recipe
|
|
2
|
+
# provided by capistrano but without the Rails-specific dependencies
|
|
3
|
+
|
|
4
|
+
set :stages, %w(staging production)
|
|
5
|
+
set :default_stage, "staging"
|
|
6
|
+
require "capistrano/ext/multistage"
|
|
7
|
+
|
|
8
|
+
# Set some globals
|
|
9
|
+
default_run_options[:pty] = true
|
|
10
|
+
set :application, "<%= name %>"
|
|
11
|
+
|
|
12
|
+
# Deployment
|
|
13
|
+
set :deploy_to, "/svc/#{application}"
|
|
14
|
+
#set :user, 'someone'
|
|
15
|
+
|
|
16
|
+
# Get repo configuration
|
|
17
|
+
set :repository, "git@github.com:yourname/#{application}.git"
|
|
18
|
+
set :scm, "git"
|
|
19
|
+
set :branch, "master"
|
|
20
|
+
set :deploy_via, :remote_cache
|
|
21
|
+
set :git_enable_submodules, 1
|
|
22
|
+
|
|
23
|
+
# No sudo
|
|
24
|
+
set :use_sudo, false
|
|
25
|
+
|
|
26
|
+
# File list in the config_files setting will be copied from the
|
|
27
|
+
# 'deploy_to' directory into config, overwriting files from the repo
|
|
28
|
+
# with the same name
|
|
29
|
+
set :config_files, %w{}
|
|
30
|
+
|
|
31
|
+
# List any work directories here that you need persisted between
|
|
32
|
+
# deployments. They are created in 'deploy_to'/shared and symlinked
|
|
33
|
+
# into the root directory of the deployment.
|
|
34
|
+
set :shared_children, %w{log tmp}
|
|
35
|
+
|
|
36
|
+
# Record our dependencies
|
|
37
|
+
unless File.directory?( "#{DaemonKit.root}/vendor/daemon_kit" )
|
|
38
|
+
depend :remote, :gem, "daemon-kit", ">=#{DaemonKit::VERSION}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Hook into capistrano's events
|
|
42
|
+
before "deploy:update_code", "deploy:check"
|
|
43
|
+
|
|
44
|
+
# Create some tasks related to deployment
|
|
45
|
+
namespace :deploy do
|
|
46
|
+
|
|
47
|
+
desc "Get the current revision of the deployed code"
|
|
48
|
+
task :get_current_version do
|
|
49
|
+
run "cat #{current_path}/REVISION" do |ch, stream, out|
|
|
50
|
+
puts "Current revision: " + out.chomp
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
data/vendor/daemon-kit/daemon_generators/deploy_capistrano/templates/config/environments/staging.rb
ADDED
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
class JabberGenerator < RubiGen::Base
|
|
2
|
+
|
|
3
|
+
default_options :author => nil
|
|
4
|
+
|
|
5
|
+
attr_reader :name
|
|
6
|
+
|
|
7
|
+
def initialize(runtime_args, runtime_options = {})
|
|
8
|
+
super
|
|
9
|
+
usage if args.empty?
|
|
10
|
+
@name = args.shift
|
|
11
|
+
extract_options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def manifest
|
|
15
|
+
record do |m|
|
|
16
|
+
# Ensure appropriate folder(s) exists
|
|
17
|
+
m.directory ''
|
|
18
|
+
|
|
19
|
+
# Create stubs
|
|
20
|
+
# m.template "template.rb.erb", "some_file_after_erb.rb"
|
|
21
|
+
# m.template_copy_each ["template.rb", "template2.rb"]
|
|
22
|
+
# m.template_copy_each ["template.rb", "template2.rb"], "some/path"
|
|
23
|
+
# m.file "file", "some_file_copied"
|
|
24
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"]
|
|
25
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"], "some/path"
|
|
26
|
+
|
|
27
|
+
# Copy over our configs
|
|
28
|
+
m.directory 'config'
|
|
29
|
+
m.template 'config/jabber.yml', 'config/jabber.yml'
|
|
30
|
+
m.directory 'config/initializers'
|
|
31
|
+
m.template 'config/initializers/jabber.rb', "config/initializers/#{name}.rb"
|
|
32
|
+
|
|
33
|
+
# Copy over our daemon
|
|
34
|
+
m.directory 'libexec'
|
|
35
|
+
m.template 'libexec/daemon.rb', "libexec/#{name}-daemon.rb"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
protected
|
|
40
|
+
def banner
|
|
41
|
+
<<-EOS
|
|
42
|
+
Creates a ...
|
|
43
|
+
|
|
44
|
+
USAGE: #{$0} #{spec.name} name
|
|
45
|
+
EOS
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def add_options!(opts)
|
|
49
|
+
# opts.separator ''
|
|
50
|
+
# opts.separator 'Options:'
|
|
51
|
+
# For each option below, place the default
|
|
52
|
+
# at the top of the file next to "default_options"
|
|
53
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
|
54
|
+
# "Some comment about this option",
|
|
55
|
+
# "Default: none") { |o| options[:author] = o }
|
|
56
|
+
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def extract_options
|
|
60
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
|
61
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
|
62
|
+
# raw instance variable value.
|
|
63
|
+
# @author = options[:author]
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Jabber configuration file
|
|
2
|
+
|
|
3
|
+
# The configuration specifies the following keys:
|
|
4
|
+
# * jabber_id - Identidy (username) of the user
|
|
5
|
+
# * password - Password used to authenticate
|
|
6
|
+
# * resource - Multiple connections can be made with the same credentials and different resources
|
|
7
|
+
# * masters - Array of Jabber ID's whose messages will be processed
|
|
8
|
+
# * supporters - Additional 'buddies' to keep on roster, but messages won't be processed
|
|
9
|
+
|
|
10
|
+
defaults: &defaults
|
|
11
|
+
jabber_id: <%= name %>@gmail.com
|
|
12
|
+
password: secret
|
|
13
|
+
resource: daemon_kit
|
|
14
|
+
masters:
|
|
15
|
+
- you@gmail.com
|
|
16
|
+
supporters:
|
|
17
|
+
- someone@gmail.com
|
|
18
|
+
|
|
19
|
+
development:
|
|
20
|
+
<<: *defaults
|
|
21
|
+
|
|
22
|
+
test:
|
|
23
|
+
<<: *defaults
|
|
24
|
+
|
|
25
|
+
production:
|
|
26
|
+
<<: *defaults
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated jabber daemon
|
|
2
|
+
|
|
3
|
+
# Do your post daemonization configuration here
|
|
4
|
+
# At minimum you need just the first line (without the block), or a lot
|
|
5
|
+
# of strange things might start happening...
|
|
6
|
+
DaemonKit::Application.running! do |config|
|
|
7
|
+
# Trap signals with blocks or procs
|
|
8
|
+
# config.trap( 'INT' ) do
|
|
9
|
+
# # do something clever
|
|
10
|
+
# end
|
|
11
|
+
# config.trap( 'TERM', Proc.new { puts 'Going down' } )
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# IMPORTANT CONFIGURATION NOTE
|
|
15
|
+
#
|
|
16
|
+
# Please review and update 'config/jabber.yml' accordingly or this
|
|
17
|
+
# daemon won't work as advertised.
|
|
18
|
+
|
|
19
|
+
# This block gets called every time a message has been received from a
|
|
20
|
+
# valid master.
|
|
21
|
+
DaemonKit::Jabber.received_messages do |message|
|
|
22
|
+
# Simple echo service
|
|
23
|
+
DaemonKit::Jabber.deliver( message.from, message.body )
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Run our Jabber bot
|
|
27
|
+
DaemonKit::Jabber.run
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
class NaniteAgentGenerator < RubiGen::Base
|
|
2
|
+
|
|
3
|
+
default_options :author => nil
|
|
4
|
+
|
|
5
|
+
attr_reader :name
|
|
6
|
+
|
|
7
|
+
def initialize(runtime_args, runtime_options = {})
|
|
8
|
+
super
|
|
9
|
+
usage if args.empty?
|
|
10
|
+
@name = args.shift
|
|
11
|
+
extract_options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def manifest
|
|
15
|
+
record do |m|
|
|
16
|
+
# Ensure appropriate folder(s) exists
|
|
17
|
+
m.directory ''
|
|
18
|
+
|
|
19
|
+
# Create stubs
|
|
20
|
+
# m.template "template.rb.erb", "some_file_after_erb.rb"
|
|
21
|
+
# m.template_copy_each ["template.rb", "template2.rb"]
|
|
22
|
+
# m.template_copy_each ["template.rb", "template2.rb"], "some/path"
|
|
23
|
+
# m.file "file", "some_file_copied"
|
|
24
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"]
|
|
25
|
+
# m.file_copy_each ["path/to/file", "path/to/file2"], "some/path"
|
|
26
|
+
|
|
27
|
+
# Copy over our configs
|
|
28
|
+
m.directory 'lib'
|
|
29
|
+
m.directory 'lib/actors'
|
|
30
|
+
m.file 'lib/actors/sample.rb', 'lib/actors/sample.rb'
|
|
31
|
+
m.directory 'config'
|
|
32
|
+
m.template 'config/nanite.yml', 'config/nanite.yml'
|
|
33
|
+
m.directory 'config/initializers'
|
|
34
|
+
m.template 'config/initializers/nanite_agent.rb', "config/initializers/#{name}.rb"
|
|
35
|
+
|
|
36
|
+
# Copy over our daemon
|
|
37
|
+
m.directory 'libexec'
|
|
38
|
+
m.template 'libexec/daemon.rb', "libexec/#{name}-daemon.rb"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
protected
|
|
43
|
+
def banner
|
|
44
|
+
<<-EOS
|
|
45
|
+
Creates a ...
|
|
46
|
+
|
|
47
|
+
USAGE: #{$0} #{spec.name} name
|
|
48
|
+
EOS
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def add_options!(opts)
|
|
52
|
+
# opts.separator ''
|
|
53
|
+
# opts.separator 'Options:'
|
|
54
|
+
# For each option below, place the default
|
|
55
|
+
# at the top of the file next to "default_options"
|
|
56
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
|
57
|
+
# "Some comment about this option",
|
|
58
|
+
# "Default: none") { |o| options[:author] = o }
|
|
59
|
+
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def extract_options
|
|
63
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
|
64
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
|
65
|
+
# raw instance variable value.
|
|
66
|
+
# @author = options[:author]
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Nanite agent configuration file
|
|
2
|
+
|
|
3
|
+
# These values will be used to configure the nanite agent, any values
|
|
4
|
+
# omitted will let the gem use it's own defaults.
|
|
5
|
+
|
|
6
|
+
# The configuration specifies the following keys:
|
|
7
|
+
# * user - Specify the rabbitmq username
|
|
8
|
+
# * pass - Specify the rabbitmq password
|
|
9
|
+
# * host - Specify the rabbitmq hostname
|
|
10
|
+
# * vhost - Specify the rabbitmq vhost
|
|
11
|
+
# * port - Specify the rabbitmq PORT, default 5672
|
|
12
|
+
# * token - Specify the agent identity
|
|
13
|
+
# * security - Use Security features of rabbitmq to restrict nanites to themselves
|
|
14
|
+
# * format - The serialization type to use for transfering data. Can be marshal, json or yaml. Default is marshal
|
|
15
|
+
# * tag - YAML array of tags
|
|
16
|
+
# * ping-time - Specify how often the agents contacts the mapper
|
|
17
|
+
# * actors - Comma separated list of actors to load (all ruby files in actors directory by default)
|
|
18
|
+
|
|
19
|
+
defaults: &defaults
|
|
20
|
+
username: nanite
|
|
21
|
+
password: testing
|
|
22
|
+
host: localhost
|
|
23
|
+
vhost: /nanite
|
|
24
|
+
# tag:
|
|
25
|
+
# - foo
|
|
26
|
+
# - bar
|
|
27
|
+
|
|
28
|
+
development:
|
|
29
|
+
<<: *defaults
|
|
30
|
+
|
|
31
|
+
test:
|
|
32
|
+
<<: *defaults
|
|
33
|
+
|
|
34
|
+
production:
|
|
35
|
+
<<: *defaults
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated nanite agent daemon
|
|
2
|
+
|
|
3
|
+
# Do your post daemonization configuration here
|
|
4
|
+
# At minimum you need just the first line (without the block), or a lot
|
|
5
|
+
# of strange things might start happening...
|
|
6
|
+
DaemonKit::Application.running! do |config|
|
|
7
|
+
# Trap signals with blocks or procs
|
|
8
|
+
# config.trap( 'INT' ) do
|
|
9
|
+
# # do something clever
|
|
10
|
+
# end
|
|
11
|
+
# config.trap( 'TERM', Proc.new { puts 'Going down' } )
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# IMPORTANT CONFIGURATION NOTE
|
|
15
|
+
#
|
|
16
|
+
# Please review and update 'config/nanite.yml' accordingly or this
|
|
17
|
+
# daemon won't work as advertised.
|
|
18
|
+
#
|
|
19
|
+
# Your actors live in DAEMON_ROOT/lib/actors
|
|
20
|
+
|
|
21
|
+
# Run the agent, and get the running agent.
|
|
22
|
+
DaemonKit::Nanite::Agent.run do |agent|
|
|
23
|
+
# Use the yielded agent instance to register your actors:
|
|
24
|
+
agent.register Sample.new
|
|
25
|
+
|
|
26
|
+
# This block can used to make your agent perform other tasks as
|
|
27
|
+
# well. Remember that you have access to a running EventMachine
|
|
28
|
+
# reactor since the AMQP gem used by nanite uses it. Other than that
|
|
29
|
+
# you can mostly leave this file alone and concentrate on developing
|
|
30
|
+
# your actors in the lib/actors/ directory of the project.
|
|
31
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
class RspecGenerator < RubiGen::Base
|
|
3
|
+
|
|
4
|
+
attr_reader :gem_name, :module_name
|
|
5
|
+
|
|
6
|
+
def initialize(runtime_args, runtime_options = {})
|
|
7
|
+
super
|
|
8
|
+
@destination_root = File.expand_path(destination_root)
|
|
9
|
+
@gem_name = base_name
|
|
10
|
+
@module_name = @gem_name.camelcase
|
|
11
|
+
extract_options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def manifest
|
|
15
|
+
record do |m|
|
|
16
|
+
# Ensure appropriate folder(s) exists
|
|
17
|
+
m.directory 'spec'
|
|
18
|
+
m.directory 'tasks'
|
|
19
|
+
|
|
20
|
+
m.template 'spec.rb', "spec/#{gem_name}_spec.rb"
|
|
21
|
+
|
|
22
|
+
m.template_copy_each %w( spec.opts spec_helper.rb ), 'spec'
|
|
23
|
+
m.file_copy_each %w( rspec.rake ), 'tasks'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
protected
|
|
28
|
+
def banner
|
|
29
|
+
<<-EOS
|
|
30
|
+
Install rspec BDD testing support.
|
|
31
|
+
|
|
32
|
+
Includes a rake task (tasks/rspec.rake) to be loaded by the root Rakefile,
|
|
33
|
+
which provides a "spec" task.
|
|
34
|
+
|
|
35
|
+
USAGE: #{$0} [options]
|
|
36
|
+
EOS
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def add_options!(opts)
|
|
40
|
+
# opts.separator ''
|
|
41
|
+
# opts.separator 'Options:'
|
|
42
|
+
# For each option below, place the default
|
|
43
|
+
# at the top of the file next to "default_options"
|
|
44
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
|
45
|
+
# "Some comment about this option",
|
|
46
|
+
# "Default: none") { |x| options[:author] = x }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def extract_options
|
|
50
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
|
51
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
|
52
|
+
# raw instance variable value.
|
|
53
|
+
# @author = options[:author]
|
|
54
|
+
end
|
|
55
|
+
end
|