furikake 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce7bd5e976343c89222efebbb1ca575ccbf3d2bf88a52a668e1ae61711e32d0b
4
- data.tar.gz: 146855c85c9fc492fda9765ef95a0d5ce05d4181a73df781a4b7e2d85c60d7fc
3
+ metadata.gz: a45c1a74a67dc656002918784619fe693d32f1b0f59cf7fe958c75c3978ca4d9
4
+ data.tar.gz: a2dd9b4c94514bf760e72bc264864aa77b1e77ac517f9e06cc7bfd298389ff24
5
5
  SHA512:
6
- metadata.gz: e81ee80f5d12fcfafae5d6bc7fa02adf644c23985e72693371e049930c9ee687fb7d6ab019b116f725c6750c823cdd65753ec14ac38eb1b5fa38e8849ee4295d
7
- data.tar.gz: ec8df80fb7a0931fcf1bbe8e3e3bd78b99212d1ea63fe7a99026e872597b65842080145155d4416676e02a46368b16eb45ef184a38c24d7ea7063adf3f40b9f7
6
+ metadata.gz: 1c88d603c594ab8b665da001d50e72a3dfb2f2dfa160791b0ca66d01fb8310a9311e170e7aa335625d4fec0fc288c3683f071f5c0170d2e79c2c35ecd25d4765
7
+ data.tar.gz: 44140932dfd0455ef2d2a01ac828851d1ee5095720f3489fb28c118c7375d5ef1b1c67b70a91cff2262c4ad9d682925abf571aee59add253b180ce0bad16070a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- furikake (0.1.1)
4
+ furikake (0.1.2)
5
5
  aws-sdk
6
6
  backlog_kit
7
7
  markdown-tables
data/lib/furikake/cli.rb CHANGED
@@ -13,12 +13,20 @@ module Furikake
13
13
  report.show
14
14
  end
15
15
 
16
- desc 'publish', 'resouces publish to something.'
16
+ desc 'publish', 'resouces publish to something. (Default: Backlog)'
17
17
  def publish
18
18
  report = Furikake::Report.new
19
19
  report.publish
20
20
  end
21
21
 
22
+ desc 'monitor', 'resouces publish to something by daemonize process.'
23
+ option :interval, type: :numeric, aliases: '-i', default: 3600, desc: 'specify monitor interval (sec).'
24
+ option :pid, type: :string, aliases: '-p', default: 'furikake.pid', desc: 'specify PID file path (Default: furikake.pid)'
25
+ def monitor
26
+ monitor = Furikake::Monitor.new(options)
27
+ monitor.run
28
+ end
29
+
22
30
  desc 'setup', 'generate .furikake.yml template.'
23
31
  def setup
24
32
  Furikake::Setup.run
@@ -0,0 +1,57 @@
1
+ # Reference: https://www.mk-mode.com/octopress/2013/10/06/ruby-daemonize-script/
2
+ require 'logger'
3
+
4
+ module Furikake
5
+ class Monitor < Report
6
+ def initialize(options)
7
+ @logger = Logger.new(STDOUT)
8
+ @flag_int = false
9
+ @pid_file = options[:pid]
10
+ @interval = options[:interval]
11
+ end
12
+
13
+ def run
14
+ begin
15
+ @logger.info 'furikake monitor starting.'
16
+ daemonize
17
+ set_trap
18
+ monitor
19
+ @logger.warn "furikake monitor stopped."
20
+ File.delete(@pid_file) if File.file?(@pid_file)
21
+ rescue => e
22
+ @logger.error "monitor の起動に失敗しました. #{e}"
23
+ exit 1
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def daemonize
30
+ begin
31
+ Process.daemon(true, true)
32
+ open(@pid_file, 'w') { |f| f << Process.pid }
33
+ rescue => e
34
+ @logger.error "monitor のデーモン化に失敗しました. #{e}"
35
+ exit 1
36
+ end
37
+ end
38
+
39
+ def set_trap
40
+ begin
41
+ Signal.trap(:INT) { @flag_int = true }
42
+ Signal.trap(:TERM) { @flag_int = true }
43
+ rescue => e
44
+ @logger.error "monitor のトラップ設定に失敗しました. #{e}"
45
+ exit 1
46
+ end
47
+ end
48
+
49
+ def monitor
50
+ while true
51
+ break if @flag_int
52
+ publish
53
+ sleep @interval
54
+ end
55
+ end
56
+ end
57
+ end
@@ -27,6 +27,10 @@ module Furikake
27
27
  end
28
28
  end
29
29
 
30
+ # def monitor_test
31
+ # show
32
+ # end
33
+
30
34
  private
31
35
 
32
36
  def generate(header, footer)
@@ -40,7 +44,7 @@ EOS
40
44
  end
41
45
 
42
46
  def check_api_key(param)
43
- if !param.has_key?(:api_key) or !param['api_key'].nil?
47
+ if !param.has_key?('api_key') or param['api_key'].nil?
44
48
  if !ENV['BACKLOG_API_KEY'].nil? or !ENV['BACKLOG_API_KEY'] == ''
45
49
  param['api_key'] = ENV['BACKLOG_API_KEY']
46
50
  return param
@@ -1,3 +1,3 @@
1
1
  module Furikake
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
data/lib/furikake.rb CHANGED
@@ -9,6 +9,7 @@ require 'furikake/resource'
9
9
  require 'furikake/report'
10
10
  require 'furikake/setup'
11
11
  require 'furikake/version'
12
+ require 'furikake/monitor'
12
13
 
13
14
  module Furikake
14
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furikake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - inokappa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-21 00:00:00.000000000 Z
11
+ date: 2018-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -151,6 +151,7 @@ files:
151
151
  - lib/furikake/formatter.rb
152
152
  - lib/furikake/formatters/csv.rb
153
153
  - lib/furikake/formatters/markdown.rb
154
+ - lib/furikake/monitor.rb
154
155
  - lib/furikake/report.rb
155
156
  - lib/furikake/reporters/backlog.rb
156
157
  - lib/furikake/resource.rb