pik 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +13 -0
- data/Manifest.txt +35 -1
- data/README.rdoc +99 -39
- data/Rakefile +49 -8
- data/bin/pik_install +23 -0
- data/features/add_command.feature +28 -0
- data/features/checkup_command.feature +0 -0
- data/features/config_command.feature +12 -0
- data/features/default_command.feature +12 -0
- data/features/env.rb +52 -0
- data/features/gemsync_command.feature +0 -0
- data/features/help_command.feature +13 -0
- data/features/implode_command.feature +12 -0
- data/features/install_command.feature +13 -0
- data/features/list_command.feature +18 -0
- data/features/remove_command.feature +18 -0
- data/features/run_command.feature +22 -0
- data/features/step_definitions/pik_commands.rb +140 -0
- data/features/switch_command.feature +35 -0
- data/features/tag_command.feature +18 -0
- data/features/version.feature +9 -0
- data/lib/pik.rb +17 -3
- data/lib/pik/commands/add_command.rb +6 -6
- data/lib/pik/commands/batch_file_editor.rb +22 -8
- data/lib/pik/commands/checkup_command.rb +5 -2
- data/lib/pik/commands/command.rb +30 -26
- data/lib/pik/commands/config_command.rb +54 -2
- data/lib/pik/commands/default_command.rb +19 -5
- data/lib/pik/commands/help_command.rb +1 -1
- data/lib/pik/commands/implode_command.rb +12 -1
- data/lib/pik/commands/install_command.rb +182 -0
- data/lib/pik/commands/list_command.rb +3 -2
- data/lib/pik/commands/remove_command.rb +6 -6
- data/lib/pik/commands/run_command.rb +70 -10
- data/lib/pik/commands/switch_command.rb +10 -10
- data/lib/pik/commands/tag_command.rb +56 -0
- data/lib/pik/config_file.rb +26 -2
- data/lib/pik/contrib/progressbar.rb +237 -0
- data/lib/pik/contrib/unzip.rb +14 -0
- data/lib/pik/contrib/uri_ext.rb +296 -0
- data/lib/pik/contrib/zip/ioextras.rb +155 -0
- data/lib/pik/contrib/zip/stdrubyext.rb +111 -0
- data/lib/pik/contrib/zip/tempfile_bugfixed.rb +195 -0
- data/lib/pik/contrib/zip/zip.rb +1846 -0
- data/lib/pik/contrib/zip/zipfilesystem.rb +609 -0
- data/lib/pik/contrib/zip/ziprequire.rb +90 -0
- data/lib/pik/core_ext/pathname.rb +20 -7
- data/lib/pik/search_path.rb +21 -13
- data/lib/pik/which.rb +52 -0
- data/lib/pik/windows_env.rb +64 -25
- data/spec/add_command_spec.rb +0 -2
- data/spec/batch_file_spec.rb +3 -3
- data/spec/command_spec.rb +0 -7
- data/spec/gemsync_command_spec.rb +1 -1
- data/spec/help_command_spec.rb +1 -1
- data/spec/list_command_spec.rb +1 -1
- data/spec/pathname_spec.rb +30 -0
- data/spec/remove_command_spec.rb +6 -6
- data/spec/run_command_spec.rb +2 -30
- data/spec/search_path_spec.rb +9 -0
- data/spec/switch_command_spec.rb +14 -2
- data/spec/which_spec.rb +7 -0
- data/tools/pik.bat +2 -0
- data/tools/pik/pik +45 -0
- data/tools/pik/pik.exe +0 -0
- data/tools/pik/pik.exy +198 -0
- metadata +50 -21
- data/bin/pik +0 -33
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: display help information
|
2
|
+
In order to know how to use pik
|
3
|
+
A developer
|
4
|
+
Wants an interface to the program
|
5
|
+
So that he can display help information
|
6
|
+
|
7
|
+
Scenario: Getting help
|
8
|
+
When I run "pik help"
|
9
|
+
Then I should see "Usage: pik command [options]"
|
10
|
+
And I should see "To get help with a command"
|
11
|
+
And I should see " pik help (command)"
|
12
|
+
And I should see "To list all commands and descriptions:"
|
13
|
+
And I should see " pik help commands"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Feature: implode command
|
2
|
+
In order to delete all pik configuration data
|
3
|
+
A developer
|
4
|
+
Wants an interface to the program
|
5
|
+
So that he can delete all pik configuration data
|
6
|
+
|
7
|
+
|
8
|
+
Scenario: pik implode
|
9
|
+
Given I have a directory "C:/temp/.pik"
|
10
|
+
And it contains a config.yml
|
11
|
+
When I run "pik implode -f"
|
12
|
+
Then the directory should be deleted
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: install command
|
2
|
+
In order to keep up to date with multiple ruby implementations
|
3
|
+
A developer
|
4
|
+
Wants a command line tool
|
5
|
+
So that he can download and install them
|
6
|
+
|
7
|
+
Scenario: install from the intarwebs
|
8
|
+
When I run "pik install ruby"
|
9
|
+
Then I should see "** Downloading: http://rubyforge.org/frs/download.php/62269/ruby-1.9.1-p243-i386-mingw32.7z"
|
10
|
+
And I should see " to: c:\temp\.pik"
|
11
|
+
And I should see "** Extracting: c:\temp\.pik\downloads"
|
12
|
+
And I should see "** Adding: "
|
13
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Feature: list command
|
2
|
+
In order to list ruby versions that pik is aware of
|
3
|
+
A developer
|
4
|
+
Wants an interface to the program
|
5
|
+
So that he can list configuration information
|
6
|
+
|
7
|
+
Scenario: list versions
|
8
|
+
When I run "pik list"
|
9
|
+
Then I should find "^\d+\: .+ruby"
|
10
|
+
|
11
|
+
Scenario: Determining the current ruby version from the list
|
12
|
+
When I run "pik list"
|
13
|
+
Then I should find "^\d+\: .+\*$"
|
14
|
+
|
15
|
+
Scenario: list verbose output
|
16
|
+
When I run "pik list -v"
|
17
|
+
Then I should find "^\d+\: .+\*$"
|
18
|
+
And I should find "path\: C\:[\\\/].+"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Feature: remove command
|
2
|
+
In order to remove ruby versions from pik
|
3
|
+
A developer
|
4
|
+
Wants a command line interface
|
5
|
+
So that she can remove versions.
|
6
|
+
|
7
|
+
Scenario: remove a version from the config
|
8
|
+
Given I have already added "ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]"
|
9
|
+
When I run "pik remove 186 min -f"
|
10
|
+
Then I should see "removed"
|
11
|
+
And the version should be removed.
|
12
|
+
|
13
|
+
Scenario: remove a version from the config and the filesystem
|
14
|
+
Given I have already added "ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]"
|
15
|
+
When I run "pik remove 186 min -f "
|
16
|
+
Then I should see "removed"
|
17
|
+
And the version should be removed.
|
18
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: run command
|
2
|
+
In order to test code against different ruby implementations
|
3
|
+
A developer
|
4
|
+
Wants an interface to the program
|
5
|
+
So that he can run commands against all versions that pik is aware of
|
6
|
+
|
7
|
+
Scenario: run code
|
8
|
+
When I run "pik run "path""
|
9
|
+
Then I should find "PATH=" 9 times
|
10
|
+
And I should see each version's path listed
|
11
|
+
And I should see each version listed.
|
12
|
+
|
13
|
+
Scenario: ruby command
|
14
|
+
When I run "pik ruby -e "puts 'hello world!'" "
|
15
|
+
Then I should find "hello world!" 9 times
|
16
|
+
And I should see each version listed.
|
17
|
+
|
18
|
+
Scenario: gem command
|
19
|
+
When I run "pik gem -v"
|
20
|
+
Then I should find "\n\d\.\d\.\d\n" 9 times
|
21
|
+
And I should see each version listed.
|
22
|
+
|
@@ -0,0 +1,140 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'pathname'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
PIK_LOG = 'log\\output.log'
|
6
|
+
PIK_HOME = Pathname.new( ENV['HOME'] || ENV['USERPROFILE'] ) + '.pik'
|
7
|
+
|
8
|
+
Given /^I have.+added "(.+)"/ do |version|
|
9
|
+
@version = version
|
10
|
+
@version_reg = Regexp.new(Regexp.escape(version), Regexp::IGNORECASE)
|
11
|
+
@config_file = PIK_HOME + 'config.yml'
|
12
|
+
@original_config = YAML.load(File.read(@config_file))
|
13
|
+
@ver = @original_config.keys.grep(@version_reg){|k| @original_config[k] }
|
14
|
+
@ver.size.should eql(1)
|
15
|
+
end
|
16
|
+
|
17
|
+
Given /^I am currently using it\.$/ do
|
18
|
+
unless `ruby -v` =~ @version_reg
|
19
|
+
k,v = `pik switch #{@version} & path`.split('=')
|
20
|
+
ENV[k]=v
|
21
|
+
end
|
22
|
+
`ruby -v`.should match(@version_reg)
|
23
|
+
end
|
24
|
+
|
25
|
+
Given /^I am currently using "(.+)"$/ do |version|
|
26
|
+
Given "I have added \"#{version}\""
|
27
|
+
Given "I am currently using it."
|
28
|
+
end
|
29
|
+
|
30
|
+
Given /^I have a directory "(.+)"/ do |directory|
|
31
|
+
@dir = directory
|
32
|
+
Pathname(@dir).directory?.should be_true
|
33
|
+
end
|
34
|
+
|
35
|
+
Given /^it contains a config\.yml/ do
|
36
|
+
config = Pathname(@dir) + 'config.yml'
|
37
|
+
config.should exist
|
38
|
+
end
|
39
|
+
|
40
|
+
Given /^I have no \.pik directory/ do
|
41
|
+
FileUtils.rm_rf PIK_HOME
|
42
|
+
PIK_HOME.should_not exist
|
43
|
+
end
|
44
|
+
|
45
|
+
Given /^I have an empty config\.yml/ do
|
46
|
+
File.open(PIK_HOME + 'config.yml','w'){|f| }
|
47
|
+
end
|
48
|
+
|
49
|
+
When /^I run "pik (.+?)" and "pik (.+)",$/ do |args1, args2|
|
50
|
+
%x[tools\\pik.bat #{args1} > #{PIK_LOG} 2>&1 && tools\\pik.bat #{args2} > #{PIK_LOG} 2>&1]
|
51
|
+
end
|
52
|
+
|
53
|
+
When /^I run "pik (.+?)"$/ do |args|
|
54
|
+
%x[tools\\pik.bat #{args} > #{PIK_LOG} 2>&1 ]
|
55
|
+
end
|
56
|
+
|
57
|
+
When /^I run "pik (.*)" and check the path$/ do |args|
|
58
|
+
%x[tools\\pik.bat #{args} > #{PIK_LOG} 2>&1 & PATH >> #{PIK_LOG} ]
|
59
|
+
end
|
60
|
+
|
61
|
+
Then /^I should see "(.*)"$/ do |data|
|
62
|
+
stdout = File.read(PIK_LOG)
|
63
|
+
stdout.should match(Regexp.new(Regexp.escape(data)))
|
64
|
+
end
|
65
|
+
|
66
|
+
Then /^I should find "(.*)"$/ do |regexp|
|
67
|
+
stdout = File.read(PIK_LOG)
|
68
|
+
stdout.should match(Regexp.new(regexp))
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
Then /^I should find "(.*)" (\d+) times$/ do |regexp, count|
|
73
|
+
stdout = File.read(PIK_LOG)
|
74
|
+
items = stdout.scan(Regexp.new(regexp))
|
75
|
+
items.size.should eql(count.to_i)
|
76
|
+
end
|
77
|
+
|
78
|
+
Then /^the path should point to it\.$/ do
|
79
|
+
path = @ver[0][:path]
|
80
|
+
path = path.to_s.gsub('/','\\')
|
81
|
+
Then "the path should point to \"#{path}\""
|
82
|
+
end
|
83
|
+
|
84
|
+
Then /^the path should point to "(.+)"$/ do |path|
|
85
|
+
stdout = File.read(PIK_LOG)
|
86
|
+
stdout.should match( Regexp.new(Regexp.escape(path)) )
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
Then /^I should see each version.s path listed$/ do
|
91
|
+
stdout = File.read(PIK_LOG)
|
92
|
+
config_file = PIK_HOME + 'config.yml'
|
93
|
+
config = YAML.load(File.read(config_file))
|
94
|
+
config.each{|k,v|
|
95
|
+
path = Regexp.new(Regexp.escape(v[:path].to_s.gsub('/','\\')))
|
96
|
+
stdout.should match(path)
|
97
|
+
}
|
98
|
+
end
|
99
|
+
|
100
|
+
Then /^I should see each version listed\.$/ do
|
101
|
+
stdout = File.read(PIK_LOG)
|
102
|
+
config_file = PIK_HOME + 'config.yml'
|
103
|
+
config = YAML.load(File.read(config_file))
|
104
|
+
config.each{|k,v|
|
105
|
+
version = Regexp.new(Regexp.escape(k.split(': ')[1..-1].join(': ')))
|
106
|
+
stdout.should match(version)
|
107
|
+
}
|
108
|
+
end
|
109
|
+
|
110
|
+
Then /^the GEM_HOME might get set\.$/ do
|
111
|
+
gem_home = @ver[0][:gem_home]
|
112
|
+
if gem_home
|
113
|
+
gem_home = gem_home.to_s.gsub('/','\\')
|
114
|
+
reg_gem_home = Regexp.new(Regexp.escape(gem_home), Regexp::IGNORECASE)
|
115
|
+
stdout = File.read(PIK_LOG)
|
116
|
+
stdout.should match(reg_gem_home)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
Then /^the directory should be deleted$/ do
|
121
|
+
Pathname(@dir).should_not exist
|
122
|
+
end
|
123
|
+
|
124
|
+
Then /^nothing should be added to the config file\.$/ do
|
125
|
+
@current_config = YAML.load(File.read(@config_file))
|
126
|
+
@current_config.size.should eql(@original_config.size)
|
127
|
+
end
|
128
|
+
|
129
|
+
Then /^the version should be removed\.$/ do
|
130
|
+
@current_config = YAML.load(File.read(@config_file))
|
131
|
+
@current_config.size.should eql(@original_config.size - 1)
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
Then /^a gem_home option should be added to the config\.$/ do
|
136
|
+
@ver[0][:gem_home].should be_nil
|
137
|
+
@current_config = YAML.load(File.read(@config_file))
|
138
|
+
@ver = @current_config.keys.grep(@version_reg){|k| @current_config[k] }
|
139
|
+
@ver[0][:gem_home].should_not be_nil
|
140
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
Feature: switch command
|
2
|
+
In order to switch from one ruby version to another
|
3
|
+
A developer
|
4
|
+
Wants an interface to the program
|
5
|
+
So that she can easily update the path and other environment variables.
|
6
|
+
|
7
|
+
Scenario Outline: Switching versions with switch command
|
8
|
+
Given I have added "<version>" to pik
|
9
|
+
When I run "pik switch <patterns> -v" and check the path
|
10
|
+
Then I should see "<version>"
|
11
|
+
And the path should point to it.
|
12
|
+
And the GEM_HOME might get set.
|
13
|
+
|
14
|
+
Examples:
|
15
|
+
| version | patterns |
|
16
|
+
| IronRuby 0.9.1.0 on .NET 2.0.0.0 | Ir 91 |
|
17
|
+
| jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
|
18
|
+
| ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] | 186 ms |
|
19
|
+
| ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32] | 186 mi |
|
20
|
+
| ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] | 191 p2 |
|
21
|
+
|
22
|
+
Scenario Outline: Switching versions with pattern only
|
23
|
+
Given I have added "<version>" to pik
|
24
|
+
When I run "pik <patterns>" and check the path
|
25
|
+
Then the path should point to it.
|
26
|
+
And the GEM_HOME might get set.
|
27
|
+
|
28
|
+
Examples:
|
29
|
+
| version | patterns |
|
30
|
+
| IronRuby 0.9.1.0 on .NET 2.0.0.0 | Ir 91 |
|
31
|
+
| jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
|
32
|
+
| ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] | 186 ms |
|
33
|
+
| ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32] | 186 mi |
|
34
|
+
| ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] | 191 p2 |
|
35
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Feature: tag command
|
2
|
+
In order to test code against specific ruby implementations
|
3
|
+
A developer
|
4
|
+
Wants an interface to the program
|
5
|
+
So that he can tag versions that pik is aware of
|
6
|
+
|
7
|
+
Scenario: tag version
|
8
|
+
When I run "pik Ir 91" and "pik tag iron",
|
9
|
+
And I run "pik config list"
|
10
|
+
Then I should find "tags: \n iron:"
|
11
|
+
And I should see " - 091: IronRuby 0.9.1.0 on .NET 2.0.0.0"
|
12
|
+
|
13
|
+
Scenario: run tagged versions
|
14
|
+
When I run "pik Ir 91" and "pik tag iron",
|
15
|
+
And I run "pik Ir 90" and "pik tag iron",
|
16
|
+
And I run "pik tags iron run echo."
|
17
|
+
Then I should find "IronRuby 0.9.1.0 on .NET 2.0.0.0"
|
18
|
+
And I should find "IronRuby 0.9.0.0 on .NET 2.0.0.0"
|
data/lib/pik.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
module Pik
|
2
|
-
VERSION = '0.
|
2
|
+
VERSION = '0.2.0'
|
3
3
|
end
|
4
4
|
|
5
|
-
|
5
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
6
|
+
require 'yaml'
|
6
7
|
require 'pathname'
|
8
|
+
require 'fileutils'
|
7
9
|
require 'rbconfig'
|
8
10
|
|
9
11
|
require 'pik/core_ext/pathname'
|
@@ -11,6 +13,7 @@ require 'pik/commands'
|
|
11
13
|
require 'pik/commands/config_file_editor'
|
12
14
|
require 'pik/commands/batch_file_editor'
|
13
15
|
require 'pik/commands/command'
|
16
|
+
require 'pik/commands/install_command'
|
14
17
|
require 'pik/commands/list_command'
|
15
18
|
require 'pik/commands/add_command'
|
16
19
|
require 'pik/commands/help_command'
|
@@ -22,9 +25,20 @@ require 'pik/commands/config_command'
|
|
22
25
|
require 'pik/commands/gemsync_command'
|
23
26
|
require 'pik/commands/default_command'
|
24
27
|
require 'pik/commands/implode_command'
|
28
|
+
require 'pik/commands/tag_command'
|
25
29
|
require 'pik/config_file'
|
26
30
|
require 'pik/windows_env'
|
31
|
+
require 'pik/which'
|
27
32
|
require 'pik/batch_file'
|
28
33
|
require 'pik/search_path'
|
29
34
|
|
30
|
-
|
35
|
+
require 'highline'
|
36
|
+
|
37
|
+
PIK_HOME = Pathname.new( ENV['HOME'] || ENV['USERPROFILE'] ) + '.pik'
|
38
|
+
|
39
|
+
if defined? ExerbRuntime
|
40
|
+
PIK_BATCH = Pathname.new(ARGV.shift).ruby
|
41
|
+
else
|
42
|
+
pik_exe = Pathname.new($0).expand_path + '..'
|
43
|
+
PIK_BATCH = pik_exe.dirname + "#{pik_exe.basename}.bat"
|
44
|
+
end
|
@@ -9,20 +9,20 @@ module Pik
|
|
9
9
|
|
10
10
|
def execute(path=nil)
|
11
11
|
return add_interactive if interactive
|
12
|
-
path = @args.first || ::
|
12
|
+
path = @args.first || Which::Ruby.find
|
13
13
|
add(path)
|
14
14
|
end
|
15
15
|
|
16
16
|
def add(path)
|
17
17
|
path = Pathname.new(path)
|
18
18
|
path = path.dirname if path.file?
|
19
|
-
if
|
20
|
-
if
|
19
|
+
if Which::Ruby.exist?(path)
|
20
|
+
if find_config_from_path(path)
|
21
21
|
puts "This version has already been added."
|
22
22
|
else
|
23
23
|
version = get_version(path)
|
24
|
-
path = path.expand_path.to_ruby
|
25
|
-
puts "Adding: #{version}
|
24
|
+
path = Pathname(path.expand_path.to_ruby)
|
25
|
+
puts "** Adding: #{version}\n Located at: #{path}\n"
|
26
26
|
@config[version] = {}
|
27
27
|
@config[version][:path] = path
|
28
28
|
end
|
@@ -50,7 +50,7 @@ module Pik
|
|
50
50
|
}
|
51
51
|
menu.choice('s]earch'){
|
52
52
|
search_dir = @hl.ask("Enter a search path")
|
53
|
-
files =
|
53
|
+
files = Which::Ruby.glob(search_dir + '**')
|
54
54
|
files.each{|file|
|
55
55
|
dir = File.dirname(file)
|
56
56
|
add(dir) if @hl.agree("Add '#{dir}'? [Yn] ")
|
@@ -24,12 +24,25 @@ module Pik
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def switch_path_to(new_ver)
|
27
|
-
dir =
|
27
|
+
dir = Which::Ruby.find
|
28
|
+
current_config = config[ find_config_from_path(dir) ]
|
29
|
+
|
28
30
|
new_path = SearchPath.new(ENV['PATH']).replace_or_add(dir, new_ver[:path])
|
29
|
-
if new_ver[:gem_home]
|
30
|
-
|
31
|
+
if new_gem_home = new_ver[:gem_home]
|
32
|
+
|
33
|
+
new_gem_bin = Pathname.new(new_gem_home) + 'bin'
|
34
|
+
|
35
|
+
if current_gem_home = current_config[:gem_home]
|
36
|
+
current_gem_bin = Pathname.new(current_gem_home) + 'bin'
|
37
|
+
new_path.replace(current_gem_bin, new_gem_bin)
|
38
|
+
else
|
39
|
+
new_path.add(new_gem_bin)
|
40
|
+
end
|
31
41
|
else
|
32
|
-
|
42
|
+
if current_gem_home = current_config[:gem_home]
|
43
|
+
current_gem_bin = Pathname.new(current_gem_home) + 'bin'
|
44
|
+
new_path.remove(current_gem_bin)
|
45
|
+
end
|
33
46
|
end
|
34
47
|
@batch.set('PATH' => new_path.join )
|
35
48
|
end
|
@@ -41,16 +54,17 @@ module Pik
|
|
41
54
|
@batch.set('GEM_HOME' => gem_path )
|
42
55
|
end
|
43
56
|
|
44
|
-
def echo_ruby_version(verb='
|
45
|
-
|
57
|
+
def echo_ruby_version(path, verb='')
|
58
|
+
rb = Which::Ruby.exe(path).basename
|
59
|
+
@batch.file_data << "for /f \"delims=\" %%a in ('#{rb} -v') do @echo #{verb} %%a "
|
46
60
|
end
|
47
61
|
|
48
|
-
def echo_running_with_ruby_version
|
62
|
+
def echo_running_with_ruby_version(path)
|
49
63
|
echo_ruby_version('Running with')
|
50
64
|
end
|
51
65
|
|
52
66
|
def update_gem_batch
|
53
|
-
BatchFile.open(
|
67
|
+
BatchFile.open(PIK_BATCH) do |gem_bat|
|
54
68
|
# call new .pik/pik batch
|
55
69
|
gem_bat.call(%Q("#{@batch.path.to_windows}")) if @batch
|
56
70
|
gem_bat.write
|
@@ -17,7 +17,7 @@ module Pik
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def rubyopt
|
20
|
-
unless WindowsEnv.user['rubyopt'].
|
20
|
+
unless WindowsEnv.user['rubyopt'].nil? && WindowsEnv.system['rubyopt'].nil?
|
21
21
|
fail('rubyopt')
|
22
22
|
else
|
23
23
|
pass('rubyopt')
|
@@ -33,7 +33,9 @@ module Pik
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def path
|
36
|
-
|
36
|
+
user_path = WindowsEnv.user['path'] || ''
|
37
|
+
syst_path = WindowsEnv.system['path'] || ''
|
38
|
+
dirs = (user_path + syst_path).split(';')
|
37
39
|
dirs = dirs.select{|dir| File.exist?( File.join(dir,'ruby.exe') ) }
|
38
40
|
unless dirs.size == 1
|
39
41
|
fail('path')
|
@@ -59,6 +61,7 @@ module Pik
|
|
59
61
|
|
60
62
|
def fail(test)
|
61
63
|
print 'F'
|
64
|
+
$stdout.flush
|
62
65
|
# @output << @text[test][:fail]
|
63
66
|
end
|
64
67
|
|