software_smithy 1.6.2 → 1.6.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/smithy +2 -1
- data/etc/completion/zsh/_smithy +11 -5
- data/lib/smithy/config.rb +11 -6
- data/lib/smithy/download_cache.rb +1 -1
- data/lib/smithy/file_operations.rb +2 -2
- data/lib/smithy/formula.rb +5 -4
- data/lib/smithy/formula_command.rb +9 -8
- data/lib/smithy/module_file.rb +4 -1
- data/lib/smithy_version.rb +1 -1
- data/smithy.rdoc +1 -1
- metadata +4 -4
data/bin/smithy
CHANGED
@@ -43,6 +43,7 @@ $: << File.expand_path(@@smithy_bin_root + '/lib')
|
|
43
43
|
|
44
44
|
require 'English'
|
45
45
|
require 'fileutils'
|
46
|
+
require 'etc'
|
46
47
|
|
47
48
|
require 'rubygems'
|
48
49
|
require 'open4'
|
@@ -57,7 +58,7 @@ require 'active_support/core_ext/string'
|
|
57
58
|
require 'active_support/inflector'
|
58
59
|
|
59
60
|
# require 'debugger' #XXX
|
60
|
-
# require '
|
61
|
+
# require 'pp' #XXX
|
61
62
|
# require 'pry'
|
62
63
|
# require 'pry-doc'
|
63
64
|
|
data/etc/completion/zsh/_smithy
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
#compdef smithy
|
2
2
|
|
3
3
|
_smithy_packages() {
|
4
|
-
cache_file=$HOME/.smithy/completion_packages
|
5
|
-
if [[ -e $cache_file ]]
|
4
|
+
cache_file=$HOME/.smithy/completion_packages
|
5
|
+
if [[ -e $cache_file ]]
|
6
6
|
then
|
7
7
|
packages=(`cat $cache_file`)
|
8
8
|
else
|
@@ -13,7 +13,7 @@ _smithy_packages() {
|
|
13
13
|
|
14
14
|
_smithy_formulas() {
|
15
15
|
cache_file=$HOME/.smithy/completion_formulas
|
16
|
-
if [[ -e $cache_file ]]
|
16
|
+
if [[ -e $cache_file ]]
|
17
17
|
then
|
18
18
|
formulas=(`cat $cache_file`)
|
19
19
|
else
|
@@ -24,7 +24,7 @@ _smithy_formulas() {
|
|
24
24
|
|
25
25
|
_smithy_architectures() {
|
26
26
|
cache_file=$HOME/.smithy/completion_arches
|
27
|
-
if [[ -e $cache_file ]]
|
27
|
+
if [[ -e $cache_file ]]
|
28
28
|
then
|
29
29
|
arches=(`cat $cache_file`)
|
30
30
|
else
|
@@ -219,7 +219,7 @@ case "$words[1]" in
|
|
219
219
|
[[ "$PREFIX" = -* ]] && _arguments \
|
220
220
|
'(--clean)--clean[clean existing install prefix]' \
|
221
221
|
'(--no-clean)--no-clean[leave existing install prefix files intact]' \
|
222
|
-
'(-f --formula-name)'{-f,--formula-name}'[Formula name]' \
|
222
|
+
'(-f --formula-name=)'{-f,--formula-name=}'[Formula name]:formula:_smithy_formulas' \
|
223
223
|
'(-m --modulefile)'{-m,--modulefile}'[Create modulefiles as well]' \
|
224
224
|
'1: :->subcmds' && return 0
|
225
225
|
_smithy_formulas
|
@@ -230,6 +230,12 @@ case "$words[1]" in
|
|
230
230
|
display)
|
231
231
|
_smithy_formulas
|
232
232
|
;;
|
233
|
+
new)
|
234
|
+
[[ "$PREFIX" = -* ]] && _arguments \
|
235
|
+
'(-h --homepage=)'{-h,--homepage=}'[Formula homepage]' \
|
236
|
+
'(-n --name=)'{-n,--name=}'[Formula name]' \
|
237
|
+
'1: :->subcmds' && return 0
|
238
|
+
;;
|
233
239
|
esac
|
234
240
|
|
235
241
|
return
|
data/lib/smithy/config.rb
CHANGED
@@ -161,8 +161,13 @@ module Smithy
|
|
161
161
|
return s
|
162
162
|
end
|
163
163
|
|
164
|
+
def homedir
|
165
|
+
@homedir ||= File.join(Dir.home(Etc.getlogin))
|
166
|
+
@homedir
|
167
|
+
end
|
168
|
+
|
164
169
|
def last_prefix
|
165
|
-
rc_file = File.join(
|
170
|
+
rc_file = File.join(homedir, '.smithyrc')
|
166
171
|
if File.exists?(rc_file)
|
167
172
|
h = YAML.load_file(rc_file).stringify_keys rescue nil
|
168
173
|
return h["last"]
|
@@ -172,7 +177,7 @@ module Smithy
|
|
172
177
|
end
|
173
178
|
|
174
179
|
def save_last_prefix(prefix)
|
175
|
-
rc_file = File.join(
|
180
|
+
rc_file = File.join(homedir, '.smithyrc')
|
176
181
|
h = {:last => prefix.encode('UTF-8')}
|
177
182
|
File.open(rc_file, "w+") do |f|
|
178
183
|
f.write(h.to_yaml)
|
@@ -185,15 +190,15 @@ module Smithy
|
|
185
190
|
formulas = FormulaCommand.formula_names
|
186
191
|
packages = Package.all.collect{|s| s.gsub(/#{full_root}\//, '')}
|
187
192
|
|
188
|
-
FileUtils.mkdir_p(File.join(
|
193
|
+
FileUtils.mkdir_p(File.join(homedir, ".smithy"))
|
189
194
|
|
190
|
-
File.open(File.join(
|
195
|
+
File.open(File.join(homedir, ".smithy", "completion_formulas"), "w+") do |f|
|
191
196
|
f.puts formulas
|
192
197
|
end
|
193
|
-
File.open(File.join(
|
198
|
+
File.open(File.join(homedir, ".smithy", "completion_packages"), "w+") do |f|
|
194
199
|
f.puts packages
|
195
200
|
end
|
196
|
-
File.open(File.join(
|
201
|
+
File.open(File.join(homedir, ".smithy", "completion_arches"), "w+") do |f|
|
197
202
|
f.puts @config_file_hash["hostname-architectures"].values.uniq.sort
|
198
203
|
end
|
199
204
|
end
|
@@ -197,7 +197,7 @@ module Smithy
|
|
197
197
|
|
198
198
|
def install_from_string(content, dest, options = {})
|
199
199
|
if options[:noop]
|
200
|
-
updated_file = File.join(
|
200
|
+
updated_file = File.join(Smithy::Config.homedir+"/.smithy_#{File.basename(dest)}_#{Time.now.to_i}")
|
201
201
|
else
|
202
202
|
updated_file = File.join(File.dirname(dest), ".#{File.basename(dest)}_#{Time.now.to_i}")
|
203
203
|
end
|
@@ -218,7 +218,7 @@ module Smithy
|
|
218
218
|
dest = args[:destination]
|
219
219
|
|
220
220
|
if options[:noop]
|
221
|
-
rendered_file =
|
221
|
+
rendered_file = Smithy::Config.homedir+"/.#{File.basename(dest)}_#{Time.now.to_i}"
|
222
222
|
else
|
223
223
|
rendered_file = "#{File.dirname(dest)}/.#{File.basename(dest)}_#{Time.now.to_i}"
|
224
224
|
end
|
data/lib/smithy/formula.rb
CHANGED
@@ -30,6 +30,7 @@ module Smithy
|
|
30
30
|
@module_commands = nil # re-evaluate module_commands block
|
31
31
|
@module_setup = ""
|
32
32
|
raise "please specify modules OR modules_command, not both" if modules.present? && module_commands.present?
|
33
|
+
raise "module_commands method must return an array" if module_commands.present? && module_commands.class != Array
|
33
34
|
if ENV["MODULESHOME"]
|
34
35
|
@modulecmd = "modulecmd sh"
|
35
36
|
@modulecmd = "#{ENV["MODULESHOME"]}/bin/modulecmd sh" if File.exists?("#{ENV["MODULESHOME"]}/bin/modulecmd")
|
@@ -108,8 +109,8 @@ module Smithy
|
|
108
109
|
m = ModuleFile.new :package => package
|
109
110
|
FileUtils.mkdir_p(File.dirname(m.module_file))
|
110
111
|
FileOperations.render_erb(:erb_string => modulefile, :binding => m.get_binding, :destination => m.module_file)
|
111
|
-
FileOperations.make_group_writable(m.
|
112
|
-
FileOperations.set_group(m.
|
112
|
+
FileOperations.make_group_writable(m.module_path, :recursive => true)
|
113
|
+
FileOperations.set_group(m.module_path, package.group, :recursive => true)
|
113
114
|
return true
|
114
115
|
end
|
115
116
|
|
@@ -131,9 +132,9 @@ module Smithy
|
|
131
132
|
end
|
132
133
|
|
133
134
|
def module_environment_variable(mod, var)
|
134
|
-
module_display = `#{@modulecmd} display #{mod} 2>&1`
|
135
|
+
module_display = `#{module_setup} #{@modulecmd} display #{mod} 2>&1`
|
135
136
|
if module_display =~ /(\S+)\s+#{var}\s+(.*)$/
|
136
|
-
return $2
|
137
|
+
return $2.strip
|
137
138
|
else
|
138
139
|
return ""
|
139
140
|
end
|
@@ -7,7 +7,7 @@ module Smithy
|
|
7
7
|
# 3. smithy's built in formulas
|
8
8
|
def self.formula_directories
|
9
9
|
unless @formula_directories
|
10
|
-
@formula_directories = [ File.join(
|
10
|
+
@formula_directories = [ File.join(Smithy::Config.homedir, ".smithy/formulas") ]
|
11
11
|
if Smithy::Config.global[:"formula-directories"]
|
12
12
|
Smithy::Config.global[:"formula-directories"].reverse.each do |dir|
|
13
13
|
@formula_directories << dir
|
@@ -81,15 +81,16 @@ module Smithy
|
|
81
81
|
raise "unknown formula #{formula_name}" unless formula_names.include?(formula_name)
|
82
82
|
|
83
83
|
require formula_file_path(formula_name)
|
84
|
-
|
84
|
+
|
85
|
+
formula_class = "#{formula_name.underscore.camelize}Formula".constantize
|
86
|
+
version = formula_class.version if version.blank?
|
87
|
+
build = operating_system if build.blank?
|
88
|
+
p = Package.new :path => [name, version, build].join("/"), :group_writable => !formula_class.disable_group_writable
|
89
|
+
|
90
|
+
f = "#{formula_name.underscore.camelize}Formula".constantize.new(p)
|
85
91
|
# Set the actual formula file path, otherwise it's just formula.rb
|
86
92
|
f.formula_file = formula_file_path(formula_name)
|
87
93
|
|
88
|
-
version = f.version if version.blank?
|
89
|
-
build = operating_system if build.blank?
|
90
|
-
p = Package.new :path => [name, version, build].join("/"), :group_writable => f.group_writable?
|
91
|
-
f.set_package(p) if p.valid?
|
92
|
-
|
93
94
|
return f
|
94
95
|
end
|
95
96
|
|
@@ -165,7 +166,7 @@ module Smithy
|
|
165
166
|
@formula_homepage = options[:homepage]
|
166
167
|
@formula_homepage = "#{URI(@formula_url).scheme}://#{URI(@formula_url).host}/" unless options[:homepage]
|
167
168
|
|
168
|
-
destination = File.join(
|
169
|
+
destination = File.join(Smithy::Config.homedir, ".smithy/formulas")
|
169
170
|
destination = Smithy::Config.global[:"formula-directories"].first if Smithy::Config.global[:"formula-directories"]
|
170
171
|
FileUtils::mkdir_p(destination)
|
171
172
|
|
data/lib/smithy/module_file.rb
CHANGED
@@ -133,10 +133,13 @@ module Smithy
|
|
133
133
|
def module_build_list(package, builds, args = {})
|
134
134
|
output = ""
|
135
135
|
|
136
|
-
|
137
136
|
notice "Multiple Builds Found" if Smithy::Config.global[:verbose]
|
138
137
|
notice_info "Build Name".rjust(25)+" Required Modules" if Smithy::Config.global[:verbose]
|
139
138
|
ModuleFile::compilers.each_with_index do |e,i|
|
139
|
+
|
140
|
+
prgenv = e[:prg_env]
|
141
|
+
prgenv.gsub!(/PrgEnv-/, args.fetch(:prgenv_prefix)) if args[:prgenv_prefix]
|
142
|
+
|
140
143
|
if i == 0
|
141
144
|
output << "if "
|
142
145
|
else
|
data/lib/smithy_version.rb
CHANGED
data/smithy.rdoc
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: software_smithy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: awesome_print
|
@@ -336,7 +336,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
336
336
|
version: '0'
|
337
337
|
segments:
|
338
338
|
- 0
|
339
|
-
hash: -
|
339
|
+
hash: -3602502256992475544
|
340
340
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
341
341
|
none: false
|
342
342
|
requirements:
|
@@ -345,7 +345,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
345
345
|
version: '0'
|
346
346
|
segments:
|
347
347
|
- 0
|
348
|
-
hash: -
|
348
|
+
hash: -3602502256992475544
|
349
349
|
requirements: []
|
350
350
|
rubyforge_project:
|
351
351
|
rubygems_version: 1.8.23
|