adminix 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: 4bc03129c190fc9a8f82cf475e67c18d7a27e616
4
- data.tar.gz: aa4f21197f0d737ba87954b7a22f931cb6a69c68
3
+ metadata.gz: 1fa09928aefcfe976248217053c3f54809122d4d
4
+ data.tar.gz: 262d96bc6d210d70e8604035ed5dbb558565e0ea
5
5
  SHA512:
6
- metadata.gz: e8cdcc3daba881283c327adc5bcc69ab330b0da74aba4f9866517a27b1fe2f56de75a0ab71ca7645479e81ec69565c3a2e05abd16a89c6f94f3b93ce2133c4db
7
- data.tar.gz: b59bf555366bb1a130cf71a2958fff980584d1e0e15b4552b6ceb02dba94a972a4651898d55b6d0487c06933f297d6700e76a9394642789e4c7182d1303af35d
6
+ metadata.gz: 1ede0608a07eaf5e8fda6d0b8d5878ada193d6ee3293b964a4aed8bd03d432db386491db5179843a61453355e148aef9ba91c69d73c94dbe16c2addba283ca08
7
+ data.tar.gz: 75070320f47c6291103b3194aa629b31bc5237bbf65baf20140f845208797d756a50cfab8e84f8113a2cb0da72f44199b50febbbbc9a9c5984f477f7142a5fb6
data/.byebug_history CHANGED
@@ -1,4 +1,123 @@
1
1
  q
2
+ System.instance.eval(script)
3
+ script
4
+ args['args'].each { |hs| script.gsub!("%{#{hs[0]}}", hs[1]) }
5
+ script = "echo \"%{message}\""
6
+ script = "echo \"#{message}\""
7
+ script = command['command']
8
+ System.instance.eval(script)
9
+ script
10
+ System.instance.eval(script)
11
+ script
12
+ args["args"].each { |hs| script.gsub!(hs[0], hs[1]) }
13
+ args["args"].each { |hs| hs.gsub!(hs[0], hs[1]) }
14
+ args[:args].each { |hs| hs.gsub!(hs[0], hs[1]) }
15
+ args
16
+ script
17
+ args.each { |hs| script.gsub(hs[0], hs[1]) }
18
+ script
19
+ args.each { |hs| script.gsub!(hs[0], hs[1]) }
20
+ args.each { |hs| hs.gsub!(hs[0], hs[1]) }
21
+ script = command['command']
22
+ command = config.commands.find { |c| c['key'] == key }
23
+ config.commands
24
+ commands
25
+ command = commands.find { |c| c['key'] == key }
26
+ args
27
+ key
28
+ q
29
+ File.open(file_path, 'w') { |file| file.write(file_content) }
30
+ File.delete(file_path) if File.exists?(file_path)
31
+ sudo?
32
+ next
33
+ c
34
+ `showami`
35
+ render = ERB.new(template).result(binding)
36
+ render = ERB.new(@template).result(binding)
37
+ template = File.read("views/daemon_scripts/upstart.conf.erb")
38
+ binding
39
+ q
40
+ (b.local_variable_set(:username, 'ubuntu'))
41
+ b.local_variable_set(:username, 'ubuntu')
42
+ b.local_variable_set(:b, 'b')
43
+ b.local_variable_set(:a, 'a')
44
+ b = binding
45
+ (b = binding)
46
+ b = binding
47
+ puts output = renderer.result(deploy: 'deploy')
48
+ puts output = renderer.result()
49
+ renderer = ERB.new(template)
50
+ puts output = renderer.result()
51
+ renderer = ERB.new(template, username: 'deploy')
52
+ puts output = renderer.result()
53
+ renderer = ERB.new(template)
54
+ template = File.read("views/daemon_scripts/upstart.conf.erb")
55
+ require 'views/daemon_scripts/upstart.conf.erb'
56
+ q
57
+ Adminix::System.instance
58
+ Adminix::System.mac?
59
+ Adminix::System.instance.processor_load
60
+ c
61
+ Adminix::System.instance.processor_load
62
+ c
63
+ Adminix::System.instance.processor_load
64
+ c
65
+ `grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'`
66
+ ps -A -o %cpu | awk '{s+=$1} END {print s "%"}
67
+ ps -A -o %cpu | awk '{s+=$1} END {print s "%"}'
68
+ Adminix::System.instance.processor_load
69
+ Adminix::System.instance.os
70
+ c
71
+ Adminix::System.instance.os
72
+ c
73
+ Adminix::System.instance.os
74
+ Adminix::System.instance.processor_load
75
+ c
76
+ Adminix::System.instance.processor_load
77
+ Adminix::System.instance.os
78
+ Adminix::System.linux?
79
+ Adminix::System.unix?
80
+ Adminix::System.instance.processor_load
81
+ Adminix::System.instance
82
+ Adminix::System.unix?
83
+ c
84
+ Adminix::System.unix?
85
+ Adminix::System.mac?
86
+ Adminix::System.instance.os
87
+ Adminix::System.instance
88
+ c
89
+ Adminix::System.instance
90
+ c
91
+ Adminix::System.instance
92
+ Adminix::System
93
+ c
94
+ Adminix::Service
95
+ Adminix::System
96
+ c
97
+ Adminix::System
98
+ Adminix::Config
99
+ System
100
+ Adminix::System
101
+ c
102
+ Adminix::System
103
+ Adminix
104
+ c
105
+ config.valid?
106
+ config.errors
107
+ config.import
108
+ config
109
+ config.errors
110
+ config.valid?
111
+ config.errors
112
+ config.service_name
113
+ config.name
114
+ config.to_api
115
+ c
116
+ config.errors
117
+ config.valid?
118
+ config = Adminix::Config.instance
119
+ ENV['ADMINIX_CONFIG_PATH'] = generate_fake_config_file
120
+ q
2
121
  service.options_to_envs
3
122
  service.options_to_env
4
123
  service.id = 1
@@ -135,11 +254,3 @@ q
135
254
  require 'faker'
136
255
  Faker
137
256
  q
138
- require 'faker'
139
- generate_config_file
140
- q
141
- File.open('tmp/spec/adminix.json', 'w') { |file| file.write(hs.to_json) }
142
- @config_file_path = 'tmp/spec/adminix.json'
143
- File.open('adminix.json', 'w') { |file| file.write(hs.to_json) }
144
- hs.to_json
145
- JSON
data/adminix.gemspec CHANGED
@@ -30,11 +30,13 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_dependency "action_cable_client", "~> 1.3", ">= 1.3.4"
33
+ #spec.add_dependency "daemons", "~> 1.2.4"
34
+ #spec.add_dependency "action_cable_client", "~> 1.3", ">= 1.3.4"
35
+ spec.add_dependency "eventmachine", "1.2.2"
34
36
 
35
37
  spec.add_development_dependency "bundler", "~> 1.14"
36
38
  spec.add_development_dependency "rake", "~> 10.0"
37
39
  spec.add_development_dependency "rspec", "~> 3.0"
38
- spec.add_development_dependency "byebug", "~> 9.0.6"
39
- spec.add_development_dependency "faker", "~> 1.7.2"
40
+ spec.add_development_dependency "byebug", "~> 9.0", ">= 9.0.6"
41
+ spec.add_development_dependency "faker", "~> 1.7", ">= 1.7.2"
40
42
  end
data/exe/adminix CHANGED
@@ -1,5 +1,89 @@
1
1
  #!/usr/bin/env ruby
2
+ # encoding: utf-8
2
3
 
3
- require 'adminix'
4
+ require 'optparse'
5
+
6
+ options = { action: "help" }
7
+ parsers = {}
8
+
9
+ parsers[:env] = OptionParser.new do |opts|
10
+ opts.banner = "Display the commands to define ENV variables"
11
+ opts.separator " Usage: adminix env"
12
+ opts.separator ""
13
+ end
14
+
15
+ parsers[:watch] = OptionParser.new do |opts|
16
+ opts.banner = "Launch Adminix watcher"
17
+ opts.separator " Usage: adminix watch"
18
+ #opts.separator " Usage: adminix watcher [options]"
19
+ #opts.separator " Options:"
20
+ #opts.on("-d", "--daemonize", "run watcher in background process") { options[:daemonize] = true }
21
+ opts.separator ""
22
+ end
23
+
24
+ parsers[:generate_daemon] = OptionParser.new do |opts|
25
+ opts.banner = "Generate upstart script for watcher"
26
+ opts.separator " Usage: adminix generate_daemon"
27
+ opts.separator ""
28
+ end
29
+
30
+ parsers[:setup] = OptionParser.new do |opts|
31
+ opts.banner = "Generage adminix.json"
32
+ opts.separator " Usage: adminix setup"
33
+ opts.separator ""
34
+ end
35
+
36
+ parsers[:version] = OptionParser.new do |opts|
37
+ opts.banner = "Show the Adminix version"
38
+ opts.separator " Usage: adminix version"
39
+ opts.separator ""
40
+ end
41
+
42
+ options[:action] = ARGV[0] || "help"
43
+ parsers[options[:action].to_sym].parse!(ARGV) rescue nil
44
+
45
+ require "adminix" unless options[:action] == "help"
46
+
47
+ case options[:action]
48
+ when "env"
49
+ puts Adminix::Service.instance.options_to_envs
50
+ when "watch"
51
+ puts Adminix::Watcher.run!(options)
52
+ when "generate_daemon"
53
+ path = Adminix::System.instance.generate_daemon
54
+ puts "# Daemon has been generated in path #{path}\n" +
55
+ "# Please execute this command to copy adminix.conf to /etc/init folder:\n" +
56
+ "sudo mv adminix.conf /etc/init/adminix.conf\n"
57
+
58
+ when "setup"
59
+ approved = true
60
+ if Adminix::Config.instance.file_exists?
61
+ puts "File \"#{ENV['HOME']}/.adminix.json\" already exists, overwrite config (yes/no):"
62
+ approved = ['yes', 'y'].include?($stdin.gets.chomp)
63
+ end
64
+
65
+ if approved
66
+ puts "Enter secret key:"
67
+ secret_key = $stdin.gets.chomp
68
+
69
+ puts "Enter service id (empty to create a new service)"
70
+ service_id = $stdin.gets.chomp
71
+
72
+ service_name = ''
73
+ if service_id == ''
74
+ puts "Enter service name"
75
+ service_name = $stdin.gets.chomp
76
+ end
77
+
78
+ Adminix::Config.setup(
79
+ secret_key: secret_key,
80
+ service_id: service_id,
81
+ service_name: service_name
82
+ )
83
+ end
84
+ when "version"
85
+ puts "adminix version #{Adminix::VERSION}"
86
+ else
87
+ puts parsers.map { |v| v[1].to_s }
88
+ end
4
89
 
5
- Adminix::Entrypoint.execute_action(ARGV || [])
@@ -10,6 +10,7 @@ module Adminix
10
10
  attr_accessor(
11
11
  :service_name,
12
12
  :service_id,
13
+ :service_address,
13
14
  :host,
14
15
  :secret_key,
15
16
  :monitor_logs_paths,
@@ -31,6 +32,7 @@ module Adminix
31
32
  {
32
33
  service_name: service_name,
33
34
  service_id: service_id,
35
+ service_address: service_address,
34
36
  secret_key: secret_key,
35
37
  options: options || [],
36
38
  commands: commands || []
@@ -54,11 +56,12 @@ module Adminix
54
56
 
55
57
  self.service_name = hs['service_name']
56
58
  self.service_id = hs['service_id']
59
+ self.service_address = hs['service_address']
57
60
  self.secret_key = hs['secret_key']
58
61
  self.host = hs['host'] || ENV['ADMINIX_CONFIG_HOST'] || DEFAULT_HOST
59
62
  self.options = hs['options'] || []
60
63
  self.commands = hs['commands'] || []
61
-
64
+
62
65
  valid?
63
66
  end
64
67
 
@@ -54,10 +54,11 @@ module Adminix
54
54
  end
55
55
 
56
56
  def self.action_watcher
57
- watcher = Watcher.new
58
- watcher.start
57
+ Service.instance.sync
58
+ #watcher = Watcher.new
59
+ #watcher.start
59
60
 
60
- watcher
61
+ #watcher
61
62
  end
62
63
 
63
64
  def self.action_version
@@ -1,18 +1,20 @@
1
1
  require 'singleton'
2
2
  require 'json'
3
-
3
+ require 'net/http'
4
+ require 'byebug'
4
5
  module Adminix
5
6
  class Service
6
7
  include Singleton
7
8
 
8
- attr_accessor :id, :process_id, :name, :address
9
+ attr_accessor :id, :process_id, :name, :address, :completed_commands
9
10
 
10
11
  def initialize
12
+ config.import
13
+
11
14
  self.id = config.service_id
12
15
  self.name = config.service_name
13
- self.address = nil
14
-
15
- config.import
16
+ self.address = config.service_address
17
+ self.completed_commands = []
16
18
  end
17
19
 
18
20
  # Send info about container
@@ -24,28 +26,56 @@ module Adminix
24
26
 
25
27
  payload = {
26
28
  service: {
27
- name: name,
28
- options: config_payload,
29
- #commands: [],
29
+ id: id,
30
+ process_id: process_id,
31
+ completed_commands: completed_commands
30
32
  }
31
33
  }
32
-
33
- payload[:service][:id] = id unless id.nil?
34
34
 
35
- request.body = payload.to_json
35
+ if process_id.nil?
36
+ payload[:service][:name] = name
37
+ payload[:service][:address] = address
38
+ payload[:service][:options] = service_options_payload
39
+ payload[:service][:commands] = service_commands_payload
40
+ end
36
41
 
42
+ puts payload
43
+ puts "=========="
44
+
45
+ request.body = payload.to_json
37
46
  req_options = {}
38
47
  response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
39
48
  http.request(request)
40
49
  end
41
- data = JSON.parse(response.body)
50
+ data = JSON.parse(response.body)['result']
51
+
52
+ self.completed_commands = []
53
+ self.process_id = data['process_id']
54
+
55
+ if id.nil?
56
+ self.id = data['id']
57
+ config.service_id = id
58
+ config.export
59
+ end
60
+
61
+ commands_queue = data['commands_queue'] || []
62
+ puts commands_queue
63
+ commands_queue.each do |q|
64
+ if q['status'] != 'processed'
65
+ execute_command(q['command_key'], q['process_id'], q['args'] || {})
66
+ end
67
+ end
68
+ end
69
+
70
+ def run_cmd(cmd)
71
+ `#{cmd}`
42
72
  end
43
73
 
44
74
  def config
45
75
  Config.instance
46
76
  end
47
77
 
48
- def config_payload
78
+ def service_options_payload
49
79
  config.options.map do |o|
50
80
  {
51
81
  key: o['key'],
@@ -54,12 +84,53 @@ module Adminix
54
84
  value_type: o['type'],
55
85
  options: o['options'],
56
86
  validations: o['validations'],
57
- default_value: o['default_value']
87
+ default_value: o['default_value'],
88
+ value: o['default_value']
89
+ }
90
+ end
91
+ end
92
+
93
+ def service_commands_payload
94
+ config.commands.map do |o|
95
+ {
96
+ key: o['key'],
97
+ name: o['name'],
98
+ description: o['description'],
99
+ #command: o['command'],
100
+ arguments: o['arguments']
58
101
  }
59
102
  end
60
103
  end
61
104
 
62
- def execute_command
105
+ def execute_command(key, process_id, args)
106
+ command = config.commands.find { |c| c['key'] == key }
107
+ script = command['command'].dup
108
+
109
+ # TODO frontend fix attribute args
110
+ args['args'].each { |hs| script.gsub!("%{#{hs[0]}}", hs[1]) }
111
+
112
+ puts System.instance.eval(script)
113
+
114
+ #self.completed_commands << process_id
115
+
116
+ uri = URI.parse("#{config.host}/v1/services/#{id}")
117
+ request = Net::HTTP::Put.new(uri)
118
+ request.content_type = "application/json"
119
+ request["Authorization"] = "Bearer #{config.secret_key}"
120
+
121
+ payload = {
122
+ service: {
123
+ completed_command_process_id: process_id
124
+ }
125
+ }
126
+ puts "-------"
127
+ puts payload
128
+ request.body = payload.to_json
129
+ req_options = {}
130
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
131
+ http.request(request)
132
+ end
133
+ data = JSON.parse(response.body)['result']
63
134
  end
64
135
 
65
136
  def options_to_envs
@@ -79,6 +150,12 @@ module Adminix
79
150
  puts "# Run this command to configure your shell:\n" +
80
151
  "# eval $(adminix env)"
81
152
  end
153
+
154
+ def start_watcher
155
+ loop do
156
+ puts 'ok'
157
+ end
158
+ end
82
159
  end
83
160
  end
84
161
 
@@ -0,0 +1,96 @@
1
+ require 'singleton'
2
+ require 'erb'
3
+
4
+ module Adminix
5
+ class System
6
+ include Singleton
7
+
8
+ def self.windows?
9
+ (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
10
+ end
11
+
12
+ def self.mac?
13
+ (/darwin/ =~ RUBY_PLATFORM) != nil
14
+ end
15
+
16
+ def self.unix?
17
+ !self.windows?
18
+ end
19
+
20
+ def self.linux?
21
+ self.unix? and not self.mac?
22
+ end
23
+
24
+ def self.rvm?
25
+ true
26
+ end
27
+
28
+ attr_reader :os, :processor_load, :memory_load, :username, :home, :adminix_bin, :ruby_version
29
+
30
+ def initialize
31
+ _define_os
32
+ _parse_system_info
33
+ _define_adminix_bin
34
+ _check_system_load
35
+ end
36
+
37
+ def generate_daemon
38
+ template = File.read("#{Adminix::root}/views/daemon_scripts/upstart.conf.erb")
39
+ file_content = ERB.new(template).result(binding)
40
+
41
+ file_path = `pwd`.split("\n")[0] + '/adminix.conf'
42
+ File.delete(file_path) if File.exists?(file_path)
43
+ File.open(file_path, 'w') { |file| file.write(file_content) }
44
+
45
+ file_path
46
+ end
47
+
48
+ def eval(cmd)
49
+ `#{cmd}`
50
+ end
51
+
52
+ def sudo?
53
+ @username == 'root'
54
+ end
55
+
56
+ private
57
+
58
+ def _define_os
59
+ @os = if self.class.windows?
60
+ :windows
61
+ elsif self.class.mac?
62
+ :mac
63
+ elsif self.class.unix?
64
+ :unix
65
+ elsif self.class.linux?
66
+ :linux
67
+ end
68
+ end
69
+
70
+ def _parse_system_info
71
+ @username = ENV['USER'] || `whoami`.split("\n")[0]
72
+ @home = "/home/#{@username}"
73
+ @ruby_version = RUBY_VERSION
74
+ end
75
+
76
+ def _define_adminix_bin
77
+ @adminix_bin = if self.class.rvm?
78
+ "/home/#{@username}/.rvm/gems/ruby-#{@ruby_version}/wrappers/adminix"
79
+ else
80
+ "/usr/local/bin/adminix"
81
+ end
82
+ end
83
+
84
+ def _check_system_load
85
+ case @os
86
+ when :mac
87
+ @processor_load = `ps -A -o %cpu | awk '{s+=$1} END {print s "%"}'`.to_f
88
+ @memory_load = 0.1
89
+ when :linux, :unix
90
+ @processor_load = `grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'`.to_f
91
+ @memory_load = `free | grep Mem | awk '{print $3/$2 * 100.0}'`.to_f
92
+ end
93
+ end
94
+ end
95
+ end
96
+
@@ -1,3 +1,3 @@
1
1
  module Adminix
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,45 +1,42 @@
1
+ require "eventmachine"
2
+
1
3
  module Adminix
2
- module Handler
3
- def file_modified
4
- puts "#{path} modified"
4
+ class Watcher
5
+ def self.run!(options)
6
+ Watcher.new(options).run!
5
7
  end
6
8
 
7
- def file_moved
8
- puts "#{path} moved"
9
- end
9
+ DEFAULT_PERIOD = 5
10
10
 
11
- def file_deleted
12
- puts "#{path} deleted"
13
- end
11
+ attr_reader :period, :service
14
12
 
15
- def unbind
16
- puts "#{path} monitoring ceased"
13
+ def initialize(opts)
14
+ @period = opts[:period] || DEFAULT_PERIOD
15
+ @service = Service.instance
17
16
  end
18
- end
19
17
 
20
- class Watcher
21
- CABLE_URL = 'ws://localhost:28080/cable'.freeze
22
-
23
- def start
24
- puts 'Starting watcher'
25
- @em = EventMachine.run do
26
- client = ActionCableClient.new(CABLE_URL, 'MessagesChannel')
27
- # the connected callback is required, as it triggers
28
- # the actual subscribing to the channel but it can just be
29
- # client.connected {}
30
- client.connected { puts 'successfully connected.' }
31
-
32
- # called whenever a message is received from the server
33
- client.received do |message|
34
- puts message
18
+ def run!
19
+ trap_signal
20
+
21
+ EventMachine.run do
22
+ EventMachine.add_periodic_timer(period) do
23
+ sync_service
35
24
  end
25
+ end
26
+ end
36
27
 
37
- # adds to a queue that is purged upon receiving of
38
- # a ping from the server
39
- client.perform('speak', { message: 'hello from amc' })
28
+ def sync_service
29
+ puts "Syncing service"
30
+ #puts @service.run_cmd('whoami')
31
+ service.sync
32
+ end
40
33
 
41
- EventMachine.watch_file("/vagrant/log", Handler)
42
- end
34
+ def trap_signal
35
+ Signal.trap("SIGINT") do
36
+ puts "Stopping..."
37
+ EventMachine.stop
38
+ end
43
39
  end
44
40
  end
45
41
  end
42
+
data/lib/adminix.rb CHANGED
@@ -1,5 +1,13 @@
1
1
  require 'adminix/version'
2
2
  require 'adminix/config'
3
3
  require 'adminix/service'
4
+ require 'adminix/system'
4
5
  require 'adminix/watcher'
5
- require 'adminix/entrypoint'
6
+ require 'adminix/entrypoint'
7
+
8
+ module Adminix
9
+ def self.root
10
+ File.dirname __dir__
11
+ end
12
+ end
13
+
@@ -0,0 +1,23 @@
1
+ description "Ruby example upstart conf"
2
+
3
+ setuid <%= @username %>
4
+ setgid <%= @username %>
5
+
6
+ <%#start on runlevel [2345]%>
7
+ <%#stop on runlevel [06]%>
8
+
9
+ respawn
10
+ respawn limit 3 30
11
+
12
+ # env RAILS_ENV=production
13
+
14
+ # pre-start script
15
+ # use this for any pre-start stuff
16
+ # end script
17
+
18
+ script
19
+ exec /bin/bash <<EOS
20
+ export HOME=<%= @home %>
21
+ exec <%= @adminix_bin %> watch
22
+ EOS
23
+ end script
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adminix
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
  - Christian Dyl
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-06 00:00:00.000000000 Z
11
+ date: 2017-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: action_cable_client
14
+ name: eventmachine
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.3'
20
- - - ">="
17
+ - - '='
21
18
  - !ruby/object:Gem::Version
22
- version: 1.3.4
19
+ version: 1.2.2
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
24
+ - - '='
28
25
  - !ruby/object:Gem::Version
29
- version: '1.3'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 1.3.4
26
+ version: 1.2.2
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: bundler
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -77,6 +71,9 @@ dependencies:
77
71
  requirement: !ruby/object:Gem::Requirement
78
72
  requirements:
79
73
  - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '9.0'
76
+ - - ">="
80
77
  - !ruby/object:Gem::Version
81
78
  version: 9.0.6
82
79
  type: :development
@@ -84,6 +81,9 @@ dependencies:
84
81
  version_requirements: !ruby/object:Gem::Requirement
85
82
  requirements:
86
83
  - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '9.0'
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: 9.0.6
89
89
  - !ruby/object:Gem::Dependency
@@ -91,6 +91,9 @@ dependencies:
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.7'
96
+ - - ">="
94
97
  - !ruby/object:Gem::Version
95
98
  version: 1.7.2
96
99
  type: :development
@@ -98,6 +101,9 @@ dependencies:
98
101
  version_requirements: !ruby/object:Gem::Requirement
99
102
  requirements:
100
103
  - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '1.7'
106
+ - - ">="
101
107
  - !ruby/object:Gem::Version
102
108
  version: 1.7.2
103
109
  description: Adminix
@@ -122,15 +128,13 @@ files:
122
128
  - bin/setup
123
129
  - exe/adminix
124
130
  - lib/adminix.rb
125
- - lib/adminix/.config.rb.swp
126
- - lib/adminix/.entrypoint.rb.swp
127
- - lib/adminix/.service.rb.swo
128
- - lib/adminix/.service.rb.swp
129
131
  - lib/adminix/config.rb
130
132
  - lib/adminix/entrypoint.rb
131
133
  - lib/adminix/service.rb
134
+ - lib/adminix/system.rb
132
135
  - lib/adminix/version.rb
133
136
  - lib/adminix/watcher.rb
137
+ - views/daemon_scripts/upstart.conf.erb
134
138
  homepage: http://adminix.io
135
139
  licenses:
136
140
  - MIT
@@ -151,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
155
  version: '0'
152
156
  requirements: []
153
157
  rubyforge_project:
154
- rubygems_version: 2.6.8
158
+ rubygems_version: 2.5.1
155
159
  signing_key:
156
160
  specification_version: 4
157
161
  summary: Adminix
Binary file
Binary file
Binary file
Binary file