cronicle 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce9c4a8eff04541e0649bf02eb6e096774d2d42b
4
- data.tar.gz: 0833f3ca301c909805d70910e08491de147f4507
3
+ metadata.gz: 11f5fe77a738b4c7a79a87b1251b64863fcad6ee
4
+ data.tar.gz: fcc9dab5e28efb956caa314d6fc7c4b1e2453c3d
5
5
  SHA512:
6
- metadata.gz: 2237ab42e1da6822a540b0a806a67da32155288aeb9a6fdb345ec85baf6b66e137b9b95745898166e9446405e07dbb4dcad3604929ad00e4042978e68282f180
7
- data.tar.gz: c48de4d137fcb1030b8fede56e6189b439d58cd788c12a4ad70be84e31594dd7bb2c8dce361e1985245fcc778701894ae4562fbe18e0e3641a72dbfeb146062a
6
+ metadata.gz: 72a43d752f2a204e52684c34be85229cb68f71df9c488870e089b2b29ab6f16ed2ff88bc0e9b31ab02062a61a3fc53c130d520c963fe679cb3f6939e1b90f35d
7
+ data.tar.gz: 981d289443e799428e4cc77f3aa3b6337ea05ae6a7e6bda0827b4327b6beab20d0f491e838137438ea2b6476149fa40142e2c42d08cf9bfd63bab0469ce5c7b4
data/README.md CHANGED
@@ -35,6 +35,7 @@ Options:
35
35
  -h, [--hosts=HOSTS] # Hosts definition file
36
36
  -r, [--target-roles=one two three] # Target host role list
37
37
  -p, [--sudo-password=SUDO-PASSWORD] # Sudo password
38
+ [--ask-pass], [--no-ask-pass] # Ask sudo password
38
39
  [--dry-run], [--no-dry-run] # Do not actually change
39
40
  -c, [--ssh-config=SSH-CONFIG] # OpenSSH configuration file
40
41
  [--connection-timeout=N] # SSH connection timeout
@@ -76,6 +77,21 @@ $ ssh your_hostname 'cat /var/lib/cronicle/libexec/ec2-user/my_job'
76
77
  puts "hello"
77
78
  ```
78
79
 
80
+ ## Jobfile example
81
+
82
+ ```ruby
83
+ on servers: :your_hostname do
84
+ job :my_job, user: "ec2-user", schedule: "* * * * *" do
85
+ puts "hello"
86
+ end
87
+
88
+ job :my_job2, user: "ec2-user", schedule: "* * * * *", content: <<-EOS
89
+ #!/bin/sh
90
+ echo hello
91
+ EOS
92
+ end
93
+ ```
94
+
79
95
  ## Hosts definition file
80
96
 
81
97
  Any of the following formats:
data/cronicle.gemspec CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'colorize'
25
25
  spec.add_dependency 'parallel'
26
26
  spec.add_dependency 'diffy'
27
+ spec.add_dependency 'highline'
27
28
  spec.add_development_dependency 'bundler'
28
29
  spec.add_development_dependency 'rake'
29
30
  spec.add_development_dependency 'rspec', '>= 3.0.0'
data/lib/cronicle.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'colorize'
2
2
  require 'diffy'
3
+ require 'highline'
3
4
  require 'json'
4
5
  require 'parallel'
5
6
  require 'set'
data/lib/cronicle/cli.rb CHANGED
@@ -5,6 +5,7 @@ class Cronicle::CLI < Thor
5
5
  class_option 'hosts', :aliases => '-h', :desc => 'Hosts definition file'
6
6
  class_option 'target-roles', :aliases => '-r', :desc => 'Target host role list', :type => :array
7
7
  class_option 'sudo-password', :aliases => '-p', :desc => 'Sudo password'
8
+ class_option 'ask-pass', :desc => 'Ask sudo password', :type => :boolean, :default => false
8
9
  class_option 'dry-run', :desc => 'Do not actually change', :type => :boolean, :default => false
9
10
  class_option 'ssh-config', :aliases => '-c', :desc => 'OpenSSH configuration file', :default => nil
10
11
  class_option 'connection-timeout', :desc => 'SSH connection timeout', :type => :numeric, :default => nil
@@ -78,13 +79,20 @@ class Cronicle::CLI < Thor
78
79
  end
79
80
 
80
81
  def client_options
81
- {
82
+ client_opts = {
82
83
  :sudo_password => options['sudo-password'],
83
84
  :concurrency => options['concurrency'],
84
85
  :libexec => options['libexec'],
85
86
  :dry_run => options['dry-run'],
86
87
  :verbose => options['verbose']
87
88
  }
89
+
90
+ if options['ask-pass']
91
+ hl = HighLine.new
92
+ client_opts[:sudo_password] = hl.ask('Password: ') {|q| q.echo = '*' }
93
+ end
94
+
95
+ client_opts
88
96
  end
89
97
 
90
98
  def host_list_options
@@ -36,6 +36,7 @@ class Cronicle::Logger < ::Logger
36
36
 
37
37
  host_user = [:host, :user].map {|key|
38
38
  value = opts[key]
39
+ next unless value
39
40
  value = Cronicle::Utils.short_hostname(value) if key == :host
40
41
  value
41
42
  }.compact
@@ -1,3 +1,3 @@
1
1
  module Cronicle
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cronicle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: highline
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: bundler
99
113
  requirement: !ruby/object:Gem::Requirement