babot 0.5.0 → 0.6.1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/babot.gemspec +1 -1
- data/bin/babot +8 -21
- data/lib/babot.rb +13 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80b98f4de939c7811071478086b09917a822e1ff
|
4
|
+
data.tar.gz: b2615a3ddd93ba9e9a23ac06b6bbf813d7cc8d62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f31996231a66c38259f21103fc091e85996a5cf34da9f8c71dbb138f965b4fabe47408e650a3654936637c693c9fc88e5cafc9d97a68e6c5b8fe7eb622b62f92
|
7
|
+
data.tar.gz: 447aa32774423316b8d38fc5f432091d9aabee8bfbb37763108327036a1248b6208b97ad403f4a67aea28b1d1d823d5c9c511c1b1c1b6b890a7f2bd9def8891f
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
babot (0.
|
4
|
+
babot (0.6.1)
|
5
5
|
boson
|
6
6
|
twitter
|
7
7
|
whenever
|
@@ -20,7 +20,7 @@ GEM
|
|
20
20
|
chronic (0.9.1)
|
21
21
|
faraday (0.8.8)
|
22
22
|
multipart-post (~> 1.2.0)
|
23
|
-
i18n (0.6.
|
23
|
+
i18n (0.6.5)
|
24
24
|
minitest (4.7.5)
|
25
25
|
multi_json (1.7.9)
|
26
26
|
multipart-post (1.2.0)
|
data/babot.gemspec
CHANGED
data/bin/babot
CHANGED
@@ -19,10 +19,8 @@ class BabotRunner < Boson::Runner
|
|
19
19
|
cmd "mkdir -p '#{root}'"
|
20
20
|
end
|
21
21
|
|
22
|
-
desc "Add bot from [repository]"
|
23
|
-
def add(repository)
|
24
|
-
name = File.basename repository
|
25
|
-
|
22
|
+
desc "Add bot [name] from [repository]"
|
23
|
+
def add(name, repository)
|
26
24
|
if File.directory? repository
|
27
25
|
cmd "ln -s '#{File.realpath repository}' '#{root.join(name)}'"
|
28
26
|
else
|
@@ -33,7 +31,6 @@ class BabotRunner < Boson::Runner
|
|
33
31
|
File.open(root.join(name, "config", "credentials.yml").to_s, 'w') do |config|
|
34
32
|
config.write DEFAULT_CONFIG.to_yaml
|
35
33
|
end
|
36
|
-
configure name
|
37
34
|
end
|
38
35
|
|
39
36
|
desc "Update bot [name]"
|
@@ -41,24 +38,14 @@ class BabotRunner < Boson::Runner
|
|
41
38
|
cmd "cd '#{root.join(name)}' && git pull --rebase origin master && bundle install"
|
42
39
|
end
|
43
40
|
|
44
|
-
desc "
|
45
|
-
def schedule
|
46
|
-
|
47
|
-
cmd "whenever -i #{name} -f #{root.join(name, 'config', 'schedule.rb')}"
|
48
|
-
end
|
41
|
+
desc "Set run date of the bot [name] with [cron] syntax with [options]"
|
42
|
+
def schedule(name, cron, *options)
|
43
|
+
cmd "printf \"every '#{cron}' do\ncommand 'babot run #{name} \"#{options.join("\" \"")}\"'\nend\" > #{root.join name, 'config', 'schedule.rb'}"
|
49
44
|
end
|
50
45
|
|
51
46
|
desc "Run bot [name]"
|
52
|
-
def run(name)
|
53
|
-
|
54
|
-
|
55
|
-
Twitter.configure do |config|
|
56
|
-
config.consumer_key = options['consumer_key']
|
57
|
-
config.consumer_secret = options['consumer_secret']
|
58
|
-
config.oauth_token = options['oauth_token']
|
59
|
-
config.oauth_token_secret = options['oauth_token_secret']
|
60
|
-
end
|
61
|
-
load root.join(name, 'babot.run').to_s
|
47
|
+
def run(name, *options)
|
48
|
+
cmd "cd '#{root.join name}' && bundle exec ruby 'babot.run' \"#{options.join("\" \"")}\""
|
62
49
|
end
|
63
50
|
|
64
51
|
desc "Delete bot [name]"
|
@@ -81,7 +68,7 @@ class BabotRunner < Boson::Runner
|
|
81
68
|
cmd "ssh '#{remote}' 'rm -rf ~/.babot'"
|
82
69
|
cmd "scp -qr '#{root}' '#{remote}:~/.'"
|
83
70
|
`ls -1 '#{root}'`.split.each do |name|
|
84
|
-
cmd "ssh '#{remote}' 'cd ~/.babot/#{name} && bundle install'"
|
71
|
+
cmd "ssh '#{remote}' 'cd ~/.babot/#{name} && bundle install && whenever -i #{name} -f ~/.babot/#{name}/config/schedule.rb'"
|
85
72
|
end
|
86
73
|
cmd "ssh '#{remote}' 'babot schedule'"
|
87
74
|
end
|
data/lib/babot.rb
CHANGED
@@ -4,4 +4,17 @@ class Babot
|
|
4
4
|
def Babot.run!
|
5
5
|
new.call
|
6
6
|
end
|
7
|
+
|
8
|
+
def twitter
|
9
|
+
return @twitter if @twitter
|
10
|
+
|
11
|
+
options = YAML::load_file "config/credentials.yml"
|
12
|
+
|
13
|
+
@twitter = Twitter::REST::Client.new do |config|
|
14
|
+
config.consumer_key = options['consumer_key']
|
15
|
+
config.consumer_secret = options['consumer_secret']
|
16
|
+
config.oauth_token = options['oauth_token']
|
17
|
+
config.oauth_token_secret = options['oauth_token_secret']
|
18
|
+
end
|
19
|
+
end
|
7
20
|
end
|