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 +5 -5
- data/bin/mineshaft +19 -11
- data/lib/mineshaft.rb +2 -1
- data/lib/mineshaft/activate.rb +2 -2
- data/lib/mineshaft/constants.rb +13 -0
- data/lib/mineshaft/date.rb +7 -0
- data/lib/mineshaft/environment.rb +23 -3
- data/lib/mineshaft/installer.rb +4 -8
- data/lib/mineshaft/shell.rb +1 -1
- data/lib/mineshaft/version.rb +2 -2
- data/versions/versions.yaml +3 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e01f1429b88389d77ee71a4f8ca32799a698b5f1a5d5829b991ce4d9859fd80d
|
4
|
+
data.tar.gz: 332512fbd73cca8aee5af64132ac29675ed1214a97e4eda686e5be42d66f8130
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8057f5bb12c09382e6dabe25d82a855694bf0a2ce09710c68da328be6d7ff00a20261642a1c09b75f67a19e373327fa6d80a49ce1282f3c855ee8b984b6cce48
|
7
|
+
data.tar.gz: 27815ff1e5ad89c03cf0f7e76e251476bf3a855dae365307f538f9437cc0e3909cfe1a06cc54cd25545fd139f36625a576f4a9ce8f6ee8566719b35dc15b6cc3
|
data/bin/mineshaft
CHANGED
@@ -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
|
data/lib/mineshaft.rb
CHANGED
@@ -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"
|
data/lib/mineshaft/activate.rb
CHANGED
@@ -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
|
data/lib/mineshaft/date.rb
CHANGED
@@ -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::
|
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
|
-
|
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
|
data/lib/mineshaft/installer.rb
CHANGED
@@ -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 #{
|
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 = "#{
|
94
|
+
dir = "#{@directory}/ruby-#@version"
|
99
95
|
commands = [
|
100
96
|
"chmod +x configure tool/ifchange",
|
101
97
|
configure_options(prefix),
|
data/lib/mineshaft/shell.rb
CHANGED
data/lib/mineshaft/version.rb
CHANGED
data/versions/versions.yaml
CHANGED
@@ -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.
|
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-
|
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
|
65
|
+
rubygems_version: 2.7.6
|
65
66
|
signing_key:
|
66
67
|
specification_version: 4
|
67
68
|
summary: Ruby virtual environment manager
|