furikake 0.1.1 → 0.1.2

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 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