snapme 0.2.1 → 0.2.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
  SHA1:
3
- metadata.gz: abdae2cc364480149efdfdc721b199aa8678a01c
4
- data.tar.gz: 4683b97c1f6429fdb24026d7527247e609238dce
3
+ metadata.gz: 39df5e7ca815a170dc0f4ae3e046e6468681408f
4
+ data.tar.gz: 880c624fb0565383d968b07e34086fdefce4e62c
5
5
  SHA512:
6
- metadata.gz: 6b29d82a52e106bbeaaab70c60be2b20b6244a5bce533f68add7e409db4b3331b5e735b1f8c484487d805191657d5976ee00521dbd39ee0af8b125bc4dafa354
7
- data.tar.gz: 95b86e4d1131b28d5e35566393159a8aa882c15299916bf07d66ae9e07ede085b57b96be84cd3dfd6edc762ef37f60000359e3883bd19b3cc5d33bcb0b4f7238
6
+ metadata.gz: 739dd668b8d1b6fb7ae25a945678b1cba057a6d41f72775eb05325a08b89c7e970c613d169bfe3ab5621a46a454f19aa1f5cdd4364ce042e47cdfebea31f9146
7
+ data.tar.gz: ba5d42afa1ff400bc3c8a9f774fdf2635785a1426f61872b7ec4c0d8e117d2e3d387102526a085deb35f97d9544d46b97a729f9180267b0113aaa478c16d676f
data/bin/snapme CHANGED
@@ -1,4 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'snapme'
3
+ begin
4
+ require 'snapme'
5
+ rescue LoadError
6
+ $:.unshift('./lib')
7
+ require 'snapme'
8
+ end
9
+
4
10
  Snapme::CLI::Command.start(ARGV.dup)
@@ -2,9 +2,28 @@ module Snapme
2
2
  module CLI
3
3
  class Command
4
4
  def self.start(args)
5
- options = Options.parse(args)
6
- Process.daemon(true) if options.daemon
7
- Snapper.new(options.host, options.interval).run
5
+ options = Options.parse(args)
6
+ auth_token = ENV['SNAPME_AUTH_TOKEN']
7
+
8
+ if options.kill
9
+ `killall snapme`
10
+ return
11
+ end
12
+
13
+ if options.show_version
14
+ puts Snapme::Version
15
+ return
16
+ end
17
+
18
+ if auth_token
19
+ Process.daemon(true) if options.daemon
20
+ Snapper.new(options.host, options.interval, auth_token).run
21
+ else
22
+ puts <<-MSG
23
+ Please set SNAPME_AUTH_TOKEN in your environment. You can get your
24
+ auth token from http://snapme.herokuapp.com
25
+ MSG
26
+ end
8
27
  end
9
28
  end
10
29
  end
@@ -6,12 +6,14 @@ module Snapme
6
6
  DEFAULT_HOST = 'http://snapme.herokuapp.com'
7
7
  DEFAULT_INTERVAL = 30 #seconds
8
8
 
9
- attr_reader :daemon, :host, :interval
9
+ attr_reader :daemon, :host, :interval, :kill, :show_version
10
10
 
11
- def initialize(daemon: true, host: DEFAULT_HOST, interval: DEFAULT_INTERVAL)
11
+ def initialize(daemon: true, host: DEFAULT_HOST, interval: DEFAULT_INTERVAL, kill: false, show_version: false)
12
12
  @daemon = !!(daemon)
13
13
  @host = host
14
14
  @interval = interval.to_i
15
+ @kill = kill
16
+ @show_version = show_version
15
17
  end
16
18
 
17
19
  def self.parse(args)
@@ -36,6 +38,14 @@ module Snapme
36
38
  opts.on('-i', '--interval [SECONDS]', 'Snapshot interval') do |seconds|
37
39
  options[:interval] = seconds
38
40
  end
41
+
42
+ opts.on('-k', '--kill', 'Kill any snapme processes') do
43
+ options[:kill] = true
44
+ end
45
+
46
+ opts.on('-v', '--version', 'Print snapme version') do
47
+ options[:show_version] = true
48
+ end
39
49
  end.parse!(args)
40
50
 
41
51
  new(options)
@@ -4,7 +4,7 @@ module Snapme
4
4
  class Snapper
5
5
  attr_reader :auth_token, :command, :host, :interval
6
6
 
7
- def initialize(host, interval, auth_token = ENV['SNAPME_AUTH_TOKEN'], command = ImagesnapCommand.new)
7
+ def initialize(host, interval, auth_token, command = ImagesnapCommand.new)
8
8
  @auth_token = auth_token
9
9
  @command = command
10
10
  @host = host
@@ -2,7 +2,7 @@ module Snapme
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- PATCH = 1
5
+ PATCH = 2
6
6
  PRE = nil
7
7
 
8
8
  def self.to_s
@@ -6,8 +6,10 @@ describe Snapme::CLI::Command do
6
6
  let(:args) { double :args }
7
7
  let(:options){ OpenStruct.new }
8
8
  let(:snapper){ double('Snapme::Snapper').as_null_object }
9
+ let(:token) { 'abc123' }
9
10
 
10
11
  before do
12
+ ENV['SNAPME_AUTH_TOKEN'] = token
11
13
  allow(Snapme::CLI::Options).to receive(:parse).and_return(options)
12
14
  allow(Snapme::Snapper).to receive(:new).and_return(snapper)
13
15
  end
@@ -35,7 +37,7 @@ describe Snapme::CLI::Command do
35
37
  options.interval = interval
36
38
  snapper = double 'Snapme::Snapper'
37
39
 
38
- expect(Snapme::Snapper).to receive(:new).with(host, interval).and_return(snapper)
40
+ expect(Snapme::Snapper).to receive(:new).with(host, interval, token).and_return(snapper)
39
41
  expect(snapper).to receive(:run)
40
42
 
41
43
  described_class.start(args)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snapme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay Hayes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-19 00:00:00.000000000 Z
11
+ date: 2013-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curb