mineshaft 1.1.1 → 1.2.0

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
- SHA1:
3
- metadata.gz: 5498a42fdca3c2ac587f7753adad5e4c306ed106
4
- data.tar.gz: 616ffcfbce71339a756201864aad4d6846ecab8b
2
+ SHA256:
3
+ metadata.gz: e01f1429b88389d77ee71a4f8ca32799a698b5f1a5d5829b991ce4d9859fd80d
4
+ data.tar.gz: 332512fbd73cca8aee5af64132ac29675ed1214a97e4eda686e5be42d66f8130
5
5
  SHA512:
6
- metadata.gz: d6e65df8eb91306b285311d5c0ddf388f47c8099083d9eafd50f585372d0551d201848dbbb1397918fa5e8b7c2791abbe0a244f42a72d2cf56d33f23c288d4e9
7
- data.tar.gz: 6a64e4ca4f08fde622e8afde7521d587aadeb3e2a8899308e2b59d87446e93cc27c820de51cd2f2f7d141fb2557f9ed6d254a5de75787c36c2fdbf8530288605
6
+ metadata.gz: 8057f5bb12c09382e6dabe25d82a855694bf0a2ce09710c68da328be6d7ff00a20261642a1c09b75f67a19e373327fa6d80a49ce1282f3c855ee8b984b6cce48
7
+ data.tar.gz: 27815ff1e5ad89c03cf0f7e76e251476bf3a855dae365307f538f9437cc0e3909cfe1a06cc54cd25545fd139f36625a576f4a9ce8f6ee8566719b35dc15b6cc3
@@ -6,20 +6,28 @@
6
6
  # email:: cameronbtesterman@gmail.com
7
7
  # created:: 2017-04-14 1:19PM
8
8
  #
9
- # Copyright (c) 2017 Cameron Testerman
9
+ # Copyright (c) 2017-2018 Cameron Testerman
10
10
 
11
11
  require "mineshaft"
12
12
  require "optparse"
13
13
  require "yaml"
14
14
 
15
- options = {}
15
+ options = {
16
+ openssl_dir: "/usr/local/opt/openssl",
17
+ version: Mineshaft::Constants::RUBY_VERSION_STABLE,
18
+ global: false
19
+ }
20
+
21
+ if ARGV[0] == "new"
22
+ new_arg = ARGV[ARGV.index("new") + 1]
23
+ new_env = true
24
+ end
16
25
 
17
26
  parser = OptionParser.new do |opts|
18
27
  opts.banner = "Usage: mineshaft [command] [options]"
19
28
  opts.separator ""
20
29
  opts.separator "Commands"
21
30
  opts.separator " new create new environment"
22
- opts.separator " global installs Ruby environment globally"
23
31
  opts.separator ""
24
32
  opts.separator "Options"
25
33
 
@@ -41,14 +49,14 @@ parser = OptionParser.new do |opts|
41
49
  "specify the directory where OpenSSL is installed") do |openssl_dir|
42
50
  options[:openssl_dir] = openssl_dir
43
51
  end
52
+
53
+ opts.on("-g",
54
+ "--global",
55
+ "install the Ruby environment globally") do |global|
56
+ options[:global] = true
57
+ options[:version] = new_arg
58
+ end
44
59
  end
45
60
 
46
61
  parser.parse!
47
-
48
- if ARGV[0] == "new"
49
- dir_name = ARGV[ARGV.index("new") + 1]
50
- Mineshaft::Environment.new(dir_name, options).create
51
- elsif ARGV[0] == "global"
52
- options[:global] = true
53
- Mineshaft::Environment.new(options[:version], options).create
54
- end
62
+ Mineshaft::Environment.new(new_arg, options).create if new_env
@@ -4,8 +4,9 @@
4
4
  # email:: cameronbtesterman@gmail.com
5
5
  # created:: 2017-04-14 1:19PM
6
6
  #
7
- # Copyright (c) 2017 Cameron Testerman
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
8
 
9
+ require "mineshaft/constants"
9
10
  require "mineshaft/environment"
10
11
  require "mineshaft/installer"
11
12
  require "mineshaft/version"
@@ -4,7 +4,7 @@
4
4
  # email:: cameronbtesterman@gmail.com
5
5
  # created:: 2017-10-26 8:46PM
6
6
  #
7
- # Copyright (c) 2017 Cameron Testerman
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
8
  require 'erb'
9
9
 
10
10
  module Mineshaft
@@ -19,13 +19,13 @@ module Mineshaft
19
19
 
20
20
  def create
21
21
  script_path = File.join(@dir, "bin/activate.sh")
22
+ File.chmod(0755, script_path)
22
23
  File.truncate(script_path, 0) if File.exist?(script_path)
23
24
  @template_file.each do |line|
24
25
  File.open(script_path, "a") do |file|
25
26
  file.write(render(line))
26
27
  end
27
28
  end
28
- File.chmod(0755, script_path)
29
29
  end
30
30
 
31
31
  private
@@ -0,0 +1,13 @@
1
+ # mineshaft
2
+ #
3
+ # author:: Cameron Testerman
4
+ # email:: cameronbtesterman@gmail.com
5
+ # created:: 2018-07-02 9:27PM
6
+ #
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
+
9
+ module Mineshaft
10
+ module Constants
11
+ RUBY_VERSION_STABLE = '2.5.1'
12
+ end
13
+ end
@@ -1,3 +1,10 @@
1
+ # mineshaft
2
+ #
3
+ # author:: Cameron Testerman
4
+ # email:: cameronbtesterman@gmail.com
5
+ #
6
+ # Copyright (c) 2017-2018 Cameron Testerman
7
+
1
8
  module Mineshaft
2
9
  module Date
3
10
  def self.prepend_zero(number)
@@ -4,7 +4,7 @@
4
4
  # email:: cameronbtesterman@gmail.com
5
5
  # created:: 2017-04-14 1:19PM
6
6
  #
7
- # Copyright (c) 2017 Cameron Testerman
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
8
 
9
9
  require 'fileutils'
10
10
  require 'yaml'
@@ -21,13 +21,17 @@ module Mineshaft
21
21
  end
22
22
  @options = options
23
23
  @versions = YAML.load_file(File.join(File.dirname(File.expand_path(__FILE__)), '../../versions/versions.yaml'))
24
- @version = @options[:version] ? @options[:version] : Mineshaft::Installer.get_latest_stable
24
+ @version = @options[:version] ? @options[:version] : Mineshaft::Constants::RUBY_VERSION_STABLE
25
25
  end
26
26
 
27
27
  def create
28
28
  FileUtils::mkdir_p(@dir)
29
29
  install_ruby
30
- create_template
30
+ if @options[:global]
31
+ set_new_global
32
+ else
33
+ create_template
34
+ end
31
35
  end
32
36
 
33
37
  private
@@ -38,6 +42,7 @@ module Mineshaft
38
42
  config.directory = @dir
39
43
  config.version = @version
40
44
  config.options = @options
45
+ config.global = @options[:global]
41
46
  end.run
42
47
  end
43
48
 
@@ -45,5 +50,20 @@ module Mineshaft
45
50
  template_file = File.open(File.join(File.dirname(File.expand_path(__FILE__)), '../../environment/activate.sh.erb'))
46
51
  Mineshaft::ActivateTemplate.new(@dir, template_file).create
47
52
  end
53
+
54
+ def set_new_global
55
+ FileUtils::mkdir_p("#{Dir.home}/.mineshaft/bin")
56
+
57
+ if File.readlines("#{Dir.home}/.bash_profile").grep(/mineshaft/).length == 0
58
+ open("#{Dir.home}/.bash_profile", 'a') do |f|
59
+ f.puts("PATH=#{Dir.home}/.mineshaft/bin:$PATH")
60
+ end
61
+ end
62
+
63
+ Dir["#{@dir}/bin/*"].each do |binary_absolute|
64
+ binary = binary_absolute.split("/").last
65
+ FileUtils::ln_s binary_absolute, "#{Dir.home}/.mineshaft/bin/#{binary}"
66
+ end
67
+ end
48
68
  end
49
69
  end
@@ -4,7 +4,7 @@
4
4
  # email:: cameronbtesterman@gmail.com
5
5
  # created:: 2017-04-14 1:19PM
6
6
  #
7
- # Copyright (c) 2017 Cameron Testerman
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
8
 
9
9
  require 'fileutils'
10
10
  require 'net/http'
@@ -14,7 +14,7 @@ require 'mineshaft/shell'
14
14
 
15
15
  module Mineshaft
16
16
  class Installer
17
- attr_accessor :url, :directory, :version, :options
17
+ attr_accessor :url, :directory, :version, :options, :global
18
18
 
19
19
  include Mineshaft::Shell
20
20
 
@@ -23,10 +23,6 @@ module Mineshaft
23
23
  yield self
24
24
  end
25
25
 
26
- def self.get_latest_stable
27
- "2.5.0"
28
- end
29
-
30
26
  def run
31
27
  download @url, @directory
32
28
  unzip @directory
@@ -89,13 +85,13 @@ module Mineshaft
89
85
  end
90
86
 
91
87
  def configure_options(prefix)
92
- config = "./configure --prefix #{Dir.pwd}/#{prefix}"
88
+ config = "./configure --prefix #{@directory}"
93
89
  config << " --with-openssl-dir=#{@options[:openssl_dir]}"
94
90
  end
95
91
 
96
92
  def build(prefix)
97
93
  puts "Building environment in #{prefix}"
98
- dir = "#{Dir.pwd}/#{prefix}/ruby-#@version"
94
+ dir = "#{@directory}/ruby-#@version"
99
95
  commands = [
100
96
  "chmod +x configure tool/ifchange",
101
97
  configure_options(prefix),
@@ -4,7 +4,7 @@
4
4
  # email:: cameronbtesterman@gmail.com
5
5
  # created:: 2017-10-23 7:01PM
6
6
  #
7
- # Copyright (c) 2017 Cameron Testerman
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
8
 
9
9
  module Mineshaft
10
10
  module Shell
@@ -4,8 +4,8 @@
4
4
  # email:: cameronbtesterman@gmail.com
5
5
  # created:: 2017-04-14 1:19PM
6
6
  #
7
- # Copyright (c) 2017 Cameron Testerman
7
+ # Copyright (c) 2017-2018 Cameron Testerman
8
8
 
9
9
  module Mineshaft
10
- VERSION = "1.1.1"
10
+ VERSION = "1.2.0"
11
11
  end
@@ -1,4 +1,7 @@
1
1
  ---
2
+ 2.6.0-preview2: https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview2.tar.gz
3
+ 2.6.0-preview1: https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.gz
4
+ 2.5.1: https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz
2
5
  2.5.0: https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz
3
6
  2.5.0-preview1: https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0-preview1.tar.gz
4
7
  2.4.3: https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.gz
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mineshaft
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Testerman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-16 00:00:00.000000000 Z
11
+ date: 2018-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -35,6 +35,7 @@ files:
35
35
  - environment/activate.sh.erb
36
36
  - lib/mineshaft.rb
37
37
  - lib/mineshaft/activate.rb
38
+ - lib/mineshaft/constants.rb
38
39
  - lib/mineshaft/date.rb
39
40
  - lib/mineshaft/environment.rb
40
41
  - lib/mineshaft/installer.rb
@@ -61,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
62
  version: '0'
62
63
  requirements: []
63
64
  rubyforge_project:
64
- rubygems_version: 2.6.11
65
+ rubygems_version: 2.7.6
65
66
  signing_key:
66
67
  specification_version: 4
67
68
  summary: Ruby virtual environment manager