prebundle 0.2.0 → 0.2.2

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