adminix 0.1.0 → 0.1.1

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