sweatshop_gears 1.0.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 +7 -0
- data/.gitignore +9 -0
- data/.rubocop.yml +13 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +111 -0
- data/LICENSE +22 -0
- data/README.md +10 -0
- data/Rakefile +23 -0
- data/bin/sweatshop-gears +24 -0
- data/lib/robot_sweatshop/gears.rb +4 -0
- data/lib/robot_sweatshop/gears/base.rb +27 -0
- data/lib/robot_sweatshop/gears/binaries.rb +36 -0
- data/lib/robot_sweatshop/gears/dependencies.rb +18 -0
- data/lib/robot_sweatshop/gears/services.rb +34 -0
- data/lib/robot_sweatshop/gears/sweatshop_gears.eye.eruby +26 -0
- data/sweatshop_gears.gemspec +29 -0
- data/test/cli.bats +9 -0
- data/test/init.bats +37 -0
- metadata +202 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 448c3c917aedf3ea48cea05f90de4007d5f5f96d
|
4
|
+
data.tar.gz: a99624061b1511eaeed4cc0b0102bd69af3c74c2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4e11957930ea0dc7d77cc9e34bba6cfd81338a9eeb133eb2c733fe203c07f5c249aafe3fd600ef2b10369e1b15aea9195ba3cebe9346300c103c98d774576442
|
7
|
+
data.tar.gz: b062a744d236c815a0404b3a60c8748c8f896d6ee4558f42027bcc35c7f6a3be132654ba0f259bf47edab782a21da27b8b2cb694474e66346a428c72470c96bc
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
robot_sweatshop-gears (0.0.1)
|
5
|
+
bundler
|
6
|
+
commander
|
7
|
+
contracts
|
8
|
+
erubis
|
9
|
+
git
|
10
|
+
robot_sweatshop
|
11
|
+
terminal-announce
|
12
|
+
|
13
|
+
GEM
|
14
|
+
remote: http://rubygems.org/
|
15
|
+
specs:
|
16
|
+
celluloid (0.15.2)
|
17
|
+
timers (~> 1.1.0)
|
18
|
+
celluloid-io (0.15.0)
|
19
|
+
celluloid (>= 0.15.0)
|
20
|
+
nio4r (>= 0.5.0)
|
21
|
+
colorize (0.7.7)
|
22
|
+
commander (4.3.4)
|
23
|
+
highline (~> 1.7.2)
|
24
|
+
configatron (4.5.0)
|
25
|
+
contracts (0.9)
|
26
|
+
daybreak (0.3.0)
|
27
|
+
docile (1.1.5)
|
28
|
+
erubis (2.7.0)
|
29
|
+
exponential-backoff (0.0.2)
|
30
|
+
eye (0.6.4)
|
31
|
+
celluloid (~> 0.15.0)
|
32
|
+
celluloid-io (~> 0.15.0)
|
33
|
+
sigar (~> 0.7.2)
|
34
|
+
state_machine
|
35
|
+
thor
|
36
|
+
ezmq (0.4.4)
|
37
|
+
ffi-rzmq (~> 2.0)
|
38
|
+
faker (1.4.3)
|
39
|
+
i18n (~> 0.5)
|
40
|
+
ffi (1.9.8)
|
41
|
+
ffi-rzmq (2.0.4)
|
42
|
+
ffi-rzmq-core (>= 1.0.1)
|
43
|
+
ffi-rzmq-core (1.0.3)
|
44
|
+
ffi (~> 1.9)
|
45
|
+
git (1.2.9.1)
|
46
|
+
highline (1.7.2)
|
47
|
+
i18n (0.7.0)
|
48
|
+
json (1.8.3)
|
49
|
+
moneta (0.8.0)
|
50
|
+
nio4r (1.1.0)
|
51
|
+
oj (2.12.9)
|
52
|
+
rack (1.6.1)
|
53
|
+
rack-protection (1.5.3)
|
54
|
+
rack
|
55
|
+
rainbow (2.0.0)
|
56
|
+
rake (10.4.2)
|
57
|
+
redislike (0.2.5)
|
58
|
+
moneta (~> 0.8)
|
59
|
+
riot (0.12.7)
|
60
|
+
rr
|
61
|
+
robot_sweatshop (0.4.3)
|
62
|
+
bundler
|
63
|
+
colorize
|
64
|
+
commander
|
65
|
+
configatron
|
66
|
+
contracts
|
67
|
+
exponential-backoff
|
68
|
+
eye
|
69
|
+
ezmq
|
70
|
+
faker
|
71
|
+
oj
|
72
|
+
sinatra
|
73
|
+
sinatra-cross_origin
|
74
|
+
stubborn_queue
|
75
|
+
rr (1.1.2)
|
76
|
+
sigar (0.7.3)
|
77
|
+
simplecov (0.10.0)
|
78
|
+
docile (~> 1.1.0)
|
79
|
+
json (~> 1.8)
|
80
|
+
simplecov-html (~> 0.10.0)
|
81
|
+
simplecov-html (0.10.0)
|
82
|
+
sinatra (1.4.6)
|
83
|
+
rack (~> 1.4)
|
84
|
+
rack-protection (~> 1.4)
|
85
|
+
tilt (>= 1.3, < 3)
|
86
|
+
sinatra-cross_origin (0.3.2)
|
87
|
+
state_machine (1.2.0)
|
88
|
+
stubborn_queue (1.1.0)
|
89
|
+
bundler
|
90
|
+
daybreak
|
91
|
+
moneta
|
92
|
+
redislike
|
93
|
+
terminal-announce (1.0.0)
|
94
|
+
bundler
|
95
|
+
contracts
|
96
|
+
rainbow
|
97
|
+
thor (0.19.1)
|
98
|
+
tilt (2.0.1)
|
99
|
+
timers (1.1.0)
|
100
|
+
|
101
|
+
PLATFORMS
|
102
|
+
ruby
|
103
|
+
|
104
|
+
DEPENDENCIES
|
105
|
+
rake
|
106
|
+
riot
|
107
|
+
robot_sweatshop-gears!
|
108
|
+
simplecov
|
109
|
+
|
110
|
+
BUNDLED WITH
|
111
|
+
1.10.2
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2015 Justin Scott
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
22
|
+
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
task :test do
|
4
|
+
`sweatshop stop`
|
5
|
+
$stdout.sync = true
|
6
|
+
puts "sweatshop-gears"
|
7
|
+
IO.popen "bats #{__dir__}/test --pretty" do |file|
|
8
|
+
until file.eof?
|
9
|
+
puts file.gets
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
task :build do
|
15
|
+
print 'Building and installing local gem..'
|
16
|
+
`gem build sweatshop-gears.gemspec --force`
|
17
|
+
print '.'
|
18
|
+
`gem install robot_sweatshop-gears-*.gem`
|
19
|
+
puts 'Done.'
|
20
|
+
end
|
21
|
+
|
22
|
+
task :default => :test
|
23
|
+
task :test => :build
|
data/bin/sweatshop-gears
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'yaml'
|
3
|
+
require 'commander/import'
|
4
|
+
require 'robot_sweatshop/gears'
|
5
|
+
|
6
|
+
program :name, 'Sweatshop Gears'
|
7
|
+
program :version, '1.0.1'
|
8
|
+
program :description, 'Package management for Robot Sweatshop'
|
9
|
+
program :help, 'Author', 'Justin Scott <jvscott@gmail.com>'
|
10
|
+
|
11
|
+
default_command :help
|
12
|
+
|
13
|
+
command :init do |c|
|
14
|
+
c.syntax = 'sweatshop-gears init'
|
15
|
+
c.description = 'Makes the Gears packages available to Robot Sweatshop'
|
16
|
+
c.option '--path STRING', String, 'The working path for downloading packages'
|
17
|
+
c.action do |args, options|
|
18
|
+
options.default :path => '/opt/gears'
|
19
|
+
Gears.download to_path: options.path
|
20
|
+
Gears::Dependencies.install from_path: options.path
|
21
|
+
Gears::Binaries.expose from_path: options.path
|
22
|
+
Gears::Services.load from_path: options.path
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'git'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
module Gears
|
5
|
+
def self.clone_packages(path)
|
6
|
+
Git.clone git_repo, File.basename(path), path: File.dirname(path)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.git_repo
|
10
|
+
'https://github.com/JScott/sweatshop-gears-packages.git'
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.download(to_path:)
|
14
|
+
puts "Downloading packages from '#{git_repo}'"
|
15
|
+
clone_packages to_path
|
16
|
+
Announce.success 'Packages downloaded'
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.packages(path)
|
20
|
+
paths = Dir["#{path}/*"].select { |path| File.directory? path }
|
21
|
+
paths.map { |path| File.expand_path path }
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.metadata(path)
|
25
|
+
YAML.load File.read("#{path}/metadata.yaml")
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'terminal-announce'
|
3
|
+
|
4
|
+
module Gears
|
5
|
+
module Binaries
|
6
|
+
def self.expose(from_path:)
|
7
|
+
Gears.packages(from_path).each do |package|
|
8
|
+
link package if contains_binary? package
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.contains_binary?(package_path)
|
13
|
+
metadata = Gears.metadata package_path
|
14
|
+
metadata['type'] == 'binary'
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.link(package_path)
|
18
|
+
binary_name = File.basename package_path
|
19
|
+
original_binary = "#{package_path}/#{binary_name}"
|
20
|
+
binary_link = "#{scripts_path}/#{binary_name}"
|
21
|
+
begin
|
22
|
+
FileUtils.symlink original_binary, binary_link
|
23
|
+
Announce.success "Symlinked #{binary_name}"
|
24
|
+
rescue
|
25
|
+
Announce.warning "#{binary_name} already exists"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.scripts_path
|
30
|
+
sweatshop_config = '/tmp/.robot_sweatshop-eye-config.yaml'
|
31
|
+
Announce.failure 'Please run `sweatshop start` again' unless File.exists? sweatshop_config
|
32
|
+
config = YAML.load File.read(sweatshop_config)
|
33
|
+
config[:scripts_path]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'terminal-announce'
|
2
|
+
require 'bundler/cli'
|
3
|
+
|
4
|
+
module Gears
|
5
|
+
module Dependencies
|
6
|
+
def self.install(from_path:)
|
7
|
+
Gears.packages(from_path).each { |path| install_gems path }
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.install_gems(package_path)
|
11
|
+
gemfile = "#{package_path}/Gemfile"
|
12
|
+
return unless File.exist? gemfile
|
13
|
+
name = File.basename(package_path).split('/').last
|
14
|
+
Announce.info "Installing gems for #{name}"
|
15
|
+
system "bundle install --gemfile #{gemfile}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'terminal-announce'
|
3
|
+
require 'erubis'
|
4
|
+
|
5
|
+
module Gears
|
6
|
+
module Services
|
7
|
+
def self.load(from_path:)
|
8
|
+
packages = Gears.packages(from_path).select { |package| contains_service? package }
|
9
|
+
services = packages.map { |package| File.basename package }
|
10
|
+
dynamically_load_eye services, from_path
|
11
|
+
services.each { |service| Announce.success "Loaded #{service} into Eye" }
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.contains_service?(package_path)
|
15
|
+
metadata = Gears.metadata package_path
|
16
|
+
metadata['type'] == 'service'
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.write_and_load(eye_config)
|
20
|
+
eye_file = '/tmp/.sweatshop_gears.eye'
|
21
|
+
File.write eye_file, eye_config
|
22
|
+
puts `eye load #{eye_file}`
|
23
|
+
puts `eye stop sweatshop_gears`
|
24
|
+
File.delete eye_file
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.dynamically_load_eye(service_list, gears_path)
|
28
|
+
input = File.read "#{__dir__}/sweatshop_gears.eye.eruby"
|
29
|
+
eruby = Erubis::Eruby.new input
|
30
|
+
context = { services: service_list, gears_path: File.expand_path(gears_path) }
|
31
|
+
write_and_load eruby.result(context)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
# TODO: config not guaranteed to be there. sweatshop has to run first
|
4
|
+
# TODO: per-user temp file
|
5
|
+
CONFIG = YAML.load_file '/tmp/.robot_sweatshop-eye-config.yaml'
|
6
|
+
PID_PATH = CONFIG[:pidfile_path]
|
7
|
+
LOG_PATH = CONFIG[:logfile_path]
|
8
|
+
|
9
|
+
Eye.config do
|
10
|
+
logger "#{CONFIG[:logfile_path]}/eye.log"
|
11
|
+
end
|
12
|
+
|
13
|
+
Eye.application :sweatshop_gears do
|
14
|
+
trigger :flapping, times: 10, within: 1.minute, retry_in: 10.minutes
|
15
|
+
check :cpu, every: 10.seconds, below: 100, times: 3
|
16
|
+
working_dir CONFIG[:working_path]
|
17
|
+
|
18
|
+
<% for service in services %>
|
19
|
+
process :'<%= service %>' do
|
20
|
+
pid_file "#{PID_PATH}/gears/<%= service %>.pid"
|
21
|
+
stdall "#{LOG_PATH}/gears/<%= service %>.log"
|
22
|
+
start_command "<%= gears_path %>/<%= service %>/<%= service %>"
|
23
|
+
daemonize true
|
24
|
+
end
|
25
|
+
<% end %>
|
26
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Gem::Specification.new do |gem|
|
2
|
+
gem.name = 'sweatshop_gears'
|
3
|
+
gem.version = '1.0.1'
|
4
|
+
gem.licenses = 'MIT'
|
5
|
+
gem.authors = ['Justin Scott']
|
6
|
+
gem.email = 'jvscott@gmail.com'
|
7
|
+
gem.homepage = 'http://www.github.com/jscott/sweatshop-gears-cli/'
|
8
|
+
gem.summary = 'Package management for Robot Sweatshop'
|
9
|
+
gem.description = gem.summary
|
10
|
+
|
11
|
+
gem.files = `git ls-files`.split("\n")
|
12
|
+
gem.test_files = `git ls-files -- test/**/*`.split("\n")
|
13
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
14
|
+
gem.require_paths = ['lib']
|
15
|
+
|
16
|
+
gem.required_ruby_version = '>= 2.1'
|
17
|
+
|
18
|
+
gem.add_runtime_dependency 'bundler'
|
19
|
+
gem.add_runtime_dependency 'commander'
|
20
|
+
gem.add_runtime_dependency 'robot_sweatshop'
|
21
|
+
gem.add_runtime_dependency 'contracts'
|
22
|
+
gem.add_runtime_dependency 'terminal-announce'
|
23
|
+
gem.add_runtime_dependency 'git'
|
24
|
+
gem.add_runtime_dependency 'erubis'
|
25
|
+
|
26
|
+
gem.add_development_dependency 'rake'
|
27
|
+
gem.add_development_dependency 'riot'
|
28
|
+
gem.add_development_dependency 'simplecov'
|
29
|
+
end
|
data/test/cli.bats
ADDED
data/test/init.bats
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env bats
|
2
|
+
|
3
|
+
@test "Downloads the Gears packages" {
|
4
|
+
run sweatshop-gears init --path .test_download_path
|
5
|
+
[ -f .test_download_path/README.md ]
|
6
|
+
}
|
7
|
+
|
8
|
+
@test "Exposes package binaries" {
|
9
|
+
run sweatshop-gears init --path .test_download_path
|
10
|
+
scripts_path=.robot_sweatshop/scripts
|
11
|
+
[ -f $scripts_path/git-sync ]
|
12
|
+
}
|
13
|
+
|
14
|
+
@test "Doesn't expose services" {
|
15
|
+
run sweatshop-gears init --path .test_download_path
|
16
|
+
scripts_path=.robot_sweatshop/scripts
|
17
|
+
[ ! -f $scripts_path/big-green-button ]
|
18
|
+
}
|
19
|
+
|
20
|
+
@test "Loads services into Eye" {
|
21
|
+
eye stop big-green-button
|
22
|
+
run sweatshop-gears init --path .test_download_path
|
23
|
+
eye start big-green-button
|
24
|
+
sleep 3
|
25
|
+
[[ $(eye info | grep big-green-button) =~ up ]]
|
26
|
+
}
|
27
|
+
|
28
|
+
@test "Installs dependencies" {
|
29
|
+
skip "I need a gem to be installed that isn't used by Sweatshop or Gears"
|
30
|
+
yes | gem uninstall SOME_GEM --all
|
31
|
+
sweatshop-gears init --path .test_download_path
|
32
|
+
[[ $(gem list) =~ "SOME_GEM " ]]
|
33
|
+
}
|
34
|
+
|
35
|
+
teardown() {
|
36
|
+
rm -rf .test_download_path
|
37
|
+
}
|
metadata
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sweatshop_gears
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Justin Scott
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: commander
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: robot_sweatshop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: contracts
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: terminal-announce
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: git
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: erubis
|
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'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: riot
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: simplecov
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description: Package management for Robot Sweatshop
|
154
|
+
email: jvscott@gmail.com
|
155
|
+
executables:
|
156
|
+
- sweatshop-gears
|
157
|
+
extensions: []
|
158
|
+
extra_rdoc_files: []
|
159
|
+
files:
|
160
|
+
- ".gitignore"
|
161
|
+
- ".rubocop.yml"
|
162
|
+
- Gemfile
|
163
|
+
- Gemfile.lock
|
164
|
+
- LICENSE
|
165
|
+
- README.md
|
166
|
+
- Rakefile
|
167
|
+
- bin/sweatshop-gears
|
168
|
+
- lib/robot_sweatshop/gears.rb
|
169
|
+
- lib/robot_sweatshop/gears/base.rb
|
170
|
+
- lib/robot_sweatshop/gears/binaries.rb
|
171
|
+
- lib/robot_sweatshop/gears/dependencies.rb
|
172
|
+
- lib/robot_sweatshop/gears/services.rb
|
173
|
+
- lib/robot_sweatshop/gears/sweatshop_gears.eye.eruby
|
174
|
+
- sweatshop_gears.gemspec
|
175
|
+
- test/cli.bats
|
176
|
+
- test/init.bats
|
177
|
+
homepage: http://www.github.com/jscott/sweatshop-gears-cli/
|
178
|
+
licenses:
|
179
|
+
- MIT
|
180
|
+
metadata: {}
|
181
|
+
post_install_message:
|
182
|
+
rdoc_options: []
|
183
|
+
require_paths:
|
184
|
+
- lib
|
185
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '2.1'
|
190
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
requirements: []
|
196
|
+
rubyforge_project:
|
197
|
+
rubygems_version: 2.4.5
|
198
|
+
signing_key:
|
199
|
+
specification_version: 4
|
200
|
+
summary: Package management for Robot Sweatshop
|
201
|
+
test_files: []
|
202
|
+
has_rdoc:
|