diff --git a/README.md b/README.md index 0b373ae..fcf6cfd 100644 --- a/README.md +++ b/README.md @@ -7,17 +7,18 @@ IRC boot for automatic triggerring `sm deploy`. On server: gem install eployday - eployday example # will generate example.yml -Edit settings in example.yml +Example for auto deploy on travis-ci tests passed `rvm-site.yml`: -Start server with: - - nohup eployday example.yml & + --- + nick: rvm-site-deploy + channels: + - "#rvm-test" + trigger_text: "The build passed." + allowed_users: + - travis-ci + command: "echo bdsm deploy" -Example for autodeploy on travis tests passed: +Start server with: - --- - users: travis-ci - triger: The build passed. - channel: #rvm-test + nohup eployday rvm-site.yml & diff --git a/bin/eployday b/bin/eployday old mode 100644 new mode 100755 diff --git a/example.yml b/example.yml new file mode 100644 index 0000000..edcc4dc --- /dev/null +++ b/example.yml @@ -0,0 +1,8 @@ +--- +nick: rvm-site-deploy +channels: + - "#rvm-test" +trigger_text: "The build passed." +allowed_users: + - travis-ci + - mpapis diff --git a/lib/eployday/cli.rb b/lib/eployday/cli.rb index 27387ec..dc64da1 100644 --- a/lib/eployday/cli.rb +++ b/lib/eployday/cli.rb @@ -1,14 +1,20 @@ require 'cinch' +require 'eployday/configuration' require 'eployday/deploy' module Eployday class CLI + def initialize args + raise "configuration file name required" if args.empty? + Eployday::Configuration.new args.first + end + def run bot = Cinch::Bot.new do configure do |c| - c.nick = "eployday" + c.nick = Eployday::Configuration[:nick] c.server = "irc.freenode.net" - c.channels = ["#rstatus"] + c.channels = Eployday::Configuration[:channels] c.plugins.plugins = [Deploy] end end diff --git a/lib/eployday/configuration.rb b/lib/eployday/configuration.rb new file mode 100755 index 0000000..c13a7a1 --- /dev/null +++ b/lib/eployday/configuration.rb @@ -0,0 +1,14 @@ +require 'yaml' + +module Eployday + class Configuration + def initialize args + @@configuration = YAML.load_file args + end + def self.[] key + @@configuration ||= {} + puts "-- reading #{key} => #{@@configuration[key.to_s]}" + @@configuration[key.to_s] + end + end +end diff --git a/lib/eployday/deploy.rb b/lib/eployday/deploy.rb index e23bdac..0dcdc16 100644 --- a/lib/eployday/deploy.rb +++ b/lib/eployday/deploy.rb @@ -5,15 +5,14 @@ module Eployday class Deploy include Cinch::Plugin - match "deploy" + match Eployday::Configuration[:trigger_text] def execute(m) if PermissionChecker.allowed?(m.user) m.reply "#{m.user.nick}: beginning deploy." - Kernel.system "sm deploy" + Kernel.system Eployday::Configuration[:command] m.reply "#{m.user.nick}: deploy finished." end end end end - diff --git a/lib/eployday/permission_checker.rb b/lib/eployday/permission_checker.rb index aeb1558..cfc36f0 100644 --- a/lib/eployday/permission_checker.rb +++ b/lib/eployday/permission_checker.rb @@ -6,7 +6,7 @@ def allowed?(user, list=load_whitelist) end def load_whitelist - @whitelist = %w[steveklabnik carols10cents wilkie cl0ckw0rk ddagradi] + @whitelist = Eployday::Configuration[:allowed_users] end end end