prebundle 0.2.0 → 0.2.2

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
  SHA256:
3
- metadata.gz: 5b57ae1225f0ff3c8436ed38fce0d6224287c5ce1fbd73c4fbce5194d12e88ac
4
- data.tar.gz: ddc7d36e6d2f1b7b3f2a36c4f4342148eed6b6c538cf9b1e4ebd2f3833280a1a
3
+ metadata.gz: 89047b1caf754eb6776a931447cdf5dbbe4dcaa4724a144eb5af0a7fa3d7b791
4
+ data.tar.gz: 1d070d1da62227064cf62ac1bb19001c7f88f94865ffc6ed640c728005cc4f31
5
5
  SHA512:
6
- metadata.gz: 32db874b2832f5877faeee5e1ce46253da098c39ce181b7a652f5b0ca4be6f321403f9e80ac4951cd9db60311c261030e518663da5ccaca0bbc4a8364f47d851
7
- data.tar.gz: fd7596a1a8a9a525b9766afa290fe43536c360a24535d7cda659e7c18d7bdc58022034f003b9c7bc9f35af15d7e89cd8bd9512813ab46f237766266633a1221a
6
+ metadata.gz: 21f5bafdd57cbb300642ad9f08222d09e3400df2ef52826a75833951631166c3fade181d6616e05b46c8f87bc22a3f9bb41fb3a0b76ce510d1288f592b7d73d0
7
+ data.tar.gz: 7e5e2947ad4529b84464b137cb9820945fa028a887378dc100bf92b83d241fb16bde1632a39f455651826abc3af4ef0b113d2c3ec99a3eb7540e4d89b8e48865
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- prebundle (0.1.0)
4
+ prebundle (0.1.1)
5
5
  thor
6
6
 
7
7
  GEM
@@ -37,6 +37,7 @@ GEM
37
37
  cucumber-wire (0.0.1)
38
38
  diff-lcs (1.3)
39
39
  ffi (1.10.0)
40
+ gem-release (2.1.1)
40
41
  gherkin (5.1.0)
41
42
  multi_json (1.13.1)
42
43
  multi_test (0.1.2)
@@ -63,6 +64,7 @@ DEPENDENCIES
63
64
  aruba
64
65
  bundler (~> 1.17)
65
66
  cucumber
67
+ gem-release
66
68
  prebundle!
67
69
  rake (~> 10.0)
68
70
  rspec (~> 3.0)
data/Rakefile CHANGED
@@ -4,3 +4,7 @@ require "rspec/core/rake_task"
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
+
8
+ task :release => :spec do
9
+ `gem bump --tag --release`
10
+ end
data/lib/prebundle/cli.rb CHANGED
@@ -1,61 +1,6 @@
1
1
  require "thor"
2
2
 
3
-
4
- class OS
5
- def initialize(gems)
6
- @gems = gems
7
- end
8
- end
9
-
10
- class Linux < OS; end
11
- class Ubuntu < Linux
12
- def packages
13
- @gems.map do |gem|
14
- case gem
15
- when 'mysql2'; "libmysqlclient-dev"
16
- when 'nokogiri'; %w[build-essential patch ruby-dev zlib1g-dev liblzma-dev]
17
- end
18
- end.flatten.uniq
19
- end
20
-
21
- def command
22
- "apt install -y #{packages.join(' ')}"
23
- end
24
- end
25
-
26
- class CentOS < Linux; end
27
- class AmazonLinux < CentOS
28
- #yum install mysql-devel
29
- end
30
-
31
- class BSD < OS; end
32
- class OpenBSD < BSD
33
- def packages
34
- @gems.map do |gem|
35
- case gem
36
- when 'nokogiri'; 'gcc' # OpenBSD<6.2
37
- end
38
- end.flatten.uniq
39
- end
40
- def command
41
- "pkg_add -v #{packages.join(' ')}"
42
- end
43
- end
44
-
45
-
46
-
47
3
  module Prebundle
48
- def self.distribution_class(hint = `lsb_release -sd`)
49
- case hint
50
- when /\AUbuntu/; Ubuntu
51
- else raise "Unknown distribution"
52
- end
53
- end
54
-
55
- def self.list_all_gems_in_Gemfile
56
- ["mysql2"]
57
- end
58
-
59
4
  class CLI < Thor
60
5
  desc "all", "Reads Gemfile on current dir and outputs required setup commands."
61
6
  def all
@@ -68,6 +13,14 @@ module Prebundle
68
13
 
69
14
  desc "gem [gemname]", "outputs required setup commands for the gem"
70
15
  def gem(gemname)
16
+ puts Prebundle::distribution_class.new([gemname]).command
17
+ puts "# prebundle gem #{gemname} | sudo sh"
18
+ STDERR.puts "# Unless it helped you, please report the issue https://github.com/kuboon/prebundle/issues/new?assignees=kuboon&labels=&template=add-gem-package-info.md&title=[add]"
19
+ end
20
+
21
+ desc "gem version", "outputs version"
22
+ def version
23
+ puts VERSION
71
24
  end
72
25
  end
73
26
  end
@@ -0,0 +1,56 @@
1
+ module OS
2
+ class Base
3
+ def initialize(gems)
4
+ @gems = gems
5
+ end
6
+ def command
7
+ raise "not impl"
8
+ end
9
+ end
10
+
11
+ class Linux < Base; end
12
+
13
+ class Debian < Linux
14
+ def packages
15
+ @gems.map do |gem|
16
+ case gem
17
+ when 'curses'; "libncursesw5-dev"
18
+ when 'mysql2'; "libmysqlclient-dev"
19
+ end
20
+ end.flatten.uniq
21
+ end
22
+ def command
23
+ "apt install -y #{packages.join(' ')}"
24
+ end
25
+ end
26
+
27
+ class Ubuntu < Debian; end
28
+
29
+ class CentOS < Linux
30
+ def packages
31
+ @gems.map do |gem|
32
+ case gem
33
+ when 'mysql2'; "mysql-devel"
34
+ end
35
+ end.flatten.uniq
36
+ end
37
+ def command
38
+ "yum install mysql-devel"
39
+ end
40
+ end
41
+
42
+ class AmazonLinux < CentOS
43
+ end
44
+
45
+ class Fedora < Linux
46
+ def command
47
+ "dnf"
48
+ end
49
+ end
50
+
51
+ class FreeBSD < Base
52
+ def command
53
+ "pkg"
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,3 @@
1
1
  module Prebundle
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.2"
3
3
  end
data/lib/prebundle.rb CHANGED
@@ -1,6 +1,17 @@
1
1
  require "prebundle/version"
2
+ require "prebundle/cli"
2
3
 
3
4
  module Prebundle
4
5
  class Error < StandardError; end
5
- # Your code goes here...
6
+
7
+ def self.distribution_class(hint = `lsb_release -sd`)
8
+ case hint
9
+ when /\AUbuntu/; Ubuntu
10
+ else raise "Unknown distribution"
11
+ end
12
+ end
13
+
14
+ def self.list_all_gems_in_Gemfile
15
+ %w[mysql2 curses]
16
+ end
6
17
  end
data/prebundle.gemspec CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "prebundle/version"
@@ -43,4 +42,5 @@ Gem::Specification.new do |spec|
43
42
  spec.add_development_dependency "rspec", "~> 3.0"
44
43
  spec.add_development_dependency "cucumber"
45
44
  spec.add_development_dependency "aruba"
45
+ spec.add_development_dependency "gem-release"
46
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prebundle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kuboon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-02 00:00:00.000000000 Z
11
+ date: 2020-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: gem-release
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: 'I will output required actions like "yum install hogehoge", "apt install
98
112
  fugafuga" etc '
99
113
  email:
@@ -118,6 +132,7 @@ files:
118
132
  - exe/prebundle
119
133
  - lib/prebundle.rb
120
134
  - lib/prebundle/cli.rb
135
+ - lib/prebundle/os.rb
121
136
  - lib/prebundle/version.rb
122
137
  - prebundle.gemspec
123
138
  homepage: https://github.com/kuboon/prebundle