[whimsy] branch master updated: Try to fix Insecure operation
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 28181b5 Try to fix Insecure operation 28181b5 is described below commit 28181b5aed7b263e3dc2e31a8356b2741e482e09 Author: Sebb AuthorDate: Mon Jul 6 23:10:50 2020 +0100 Try to fix Insecure operation --- lib/whimsy/asf/svn.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb index 4f84c9e..a1d6625 100644 --- a/lib/whimsy/asf/svn.rb +++ b/lib/whimsy/asf/svn.rb @@ -663,7 +663,7 @@ module ASF tmpdir = temp ? temp : Dir.mktmpdir.untaint begin -cmdfile = Tempfile.new('svnmucc_input', tmpdir).untaint +cmdfile = Tempfile.new('svnmucc_input', tmpdir) # add the commands commands.each do |cmd| raise ArgumentError.new 'command entries must be an array' unless Array === cmd @@ -713,7 +713,7 @@ module ASF end end ensure -File.delete cmdfile # always drop the command file +File.delete cmdfile.path.untaint # always drop the command file FileUtils.rm_rf tmpdir unless temp end end
[whimsy] branch master updated: File.delete fails at line 716
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new fdc0ad1 File.delete fails at line 716 fdc0ad1 is described below commit fdc0ad17149d12e5be8df4e8281f4750dbd89e75 Author: Sebb AuthorDate: Mon Jul 6 22:51:58 2020 +0100 File.delete fails at line 716 --- lib/whimsy/asf/svn.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb index 0bc0f8c..4f84c9e 100644 --- a/lib/whimsy/asf/svn.rb +++ b/lib/whimsy/asf/svn.rb @@ -663,7 +663,7 @@ module ASF tmpdir = temp ? temp : Dir.mktmpdir.untaint begin -cmdfile = Tempfile.new('svnmucc_input', tmpdir) +cmdfile = Tempfile.new('svnmucc_input', tmpdir).untaint # add the commands commands.each do |cmd| raise ArgumentError.new 'command entries must be an array' unless Array === cmd
[whimsy] branch master updated: Ensure env auth is untainted
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 9ac18f8 Ensure env auth is untainted 9ac18f8 is described below commit 9ac18f858f96c8b960e7cfa6288ce76ce556e0d0 Author: Sebb AuthorDate: Mon Jul 6 21:43:09 2020 +0100 Ensure env auth is untainted --- lib/whimsy/asf/rack.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/whimsy/asf/rack.rb b/lib/whimsy/asf/rack.rb index 78e2937..887a796 100644 --- a/lib/whimsy/asf/rack.rb +++ b/lib/whimsy/asf/rack.rb @@ -20,6 +20,8 @@ module ASF env.user, env.password = Base64. decode64(auth[/^Basic ([A-Za-z0-9+\/=]+)$/,1].to_s).split(':',2) end + env.user.untaint + env.password.untaint env['REMOTE_USER'] ||= env.user
[whimsy] branch master updated: String might be frozen
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new ce7ed8f String might be frozen ce7ed8f is described below commit ce7ed8f5ea498d259338d6fae9ea49a7856e5437 Author: Sebb AuthorDate: Mon Jul 6 21:24:21 2020 +0100 String might be frozen --- www/roster/views/actions/memstat.json.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/roster/views/actions/memstat.json.rb b/www/roster/views/actions/memstat.json.rb index 9ec7068..4907e05 100644 --- a/www/roster/views/actions/memstat.json.rb +++ b/www/roster/views/actions/memstat.json.rb @@ -3,7 +3,7 @@ require 'wunderbar' user = ASF::Person.find(@userid) entry = user.members_txt(true) raise Exception.new("Unable to find member entry for #{@userid}") unless entry -USERID = user.id.untaint +USERID = user.id.dup.untaint # might be frozen USERMAIL = "#{USERID}@apache.org".untaint USERNAME = user.cn.untaint TIMESTAMP = (DateTime.now.strftime "%Y-%m-%d %H:%M:%S").untaint
[whimsy] branch master updated: URI::File is not in 2.3.1
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 16d43c6 URI::File is not in 2.3.1 16d43c6 is described below commit 16d43c62993c3c5d74bf05b99a7077730ab1f0fc Author: Sebb AuthorDate: Mon Jul 6 21:04:56 2020 +0100 URI::File is not in 2.3.1 --- lib/whimsy/asf/svn.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb index 982bdd0..0bc0f8c 100644 --- a/lib/whimsy/asf/svn.rb +++ b/lib/whimsy/asf/svn.rb @@ -749,7 +749,8 @@ module ASF else uri = URI.parse(path) # allow file: URIs for local testing -if uri.is_a? URI::File or uri.is_a? URI::HTTPS # includes HTTPS +isFile = (uri.is_a? URI::File rescue false) # URI::File is not in 2.3.1 +if isFile or uri.is_a? URI::HTTPS # includes HTTPS basename = File.basename(uri.path).untaint parentdir = File.dirname(uri.path).untaint uri.path = parentdir
[whimsy] 01/01: Merge branch 'roster-emeritus'
This is an automated email from the ASF dual-hosted git repository. clr pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git commit 7acb44f860a22684a81e5999603704cb6451c762 Merge: ce2d3bc b0e80d2 Author: Craig L Russell AuthorDate: Mon Jul 6 10:31:18 2020 -0700 Merge branch 'roster-emeritus' lib/whimsy/asf/documents.rb | 24 ++ www/roster/views/actions/memstat.json.rb | 129 --- www/roster/views/person/main.js.rb | 16 www/roster/views/person/memstat.js.rb| 81 --- 4 files changed, 194 insertions(+), 56 deletions(-)
[whimsy] branch master updated: site-root no longer needed
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new eab75a9 site-root no longer needed eab75a9 is described below commit eab75a99e8c079dcdd6aa2f765d9f0aa27b8312f Author: Sebb AuthorDate: Mon Jul 6 16:48:27 2020 +0100 site-root no longer needed --- lib/spec/lib/svn_spec.rb | 2 +- repository.yml | 4 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/spec/lib/svn_spec.rb b/lib/spec/lib/svn_spec.rb index 3edd543..b3275d5 100644 --- a/lib/spec/lib/svn_spec.rb +++ b/lib/spec/lib/svn_spec.rb @@ -118,7 +118,7 @@ describe ASF::SVN do res = ASF::SVN.private_public expect(res.size()).to equal(2) expect(res[0].size).to equal(14) # will need to be adjusted from time to time - expect(res[1].size).to equal(8) # ditto. + expect(res[1].size).to equal(7) # ditto. end end diff --git a/repository.yml b/repository.yml index 47c5b3a..53050e9 100644 --- a/repository.yml +++ b/repository.yml @@ -169,9 +169,5 @@ depth: delete list: true - site-root: -url: asf/infrastructure/site/trunk/content -depth: files - steve: url: asf/steve/trunk
[whimsy] branch master updated: Change to standard sample name
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 374d2db Change to standard sample name 374d2db is described below commit 374d2db18f2d887ac2d94dc37f671e303dfe2607 Author: Sebb AuthorDate: Mon Jul 6 16:44:58 2020 +0100 Change to standard sample name --- lib/spec/lib/svn_wunderbar_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/spec/lib/svn_wunderbar_spec.rb b/lib/spec/lib/svn_wunderbar_spec.rb index fb3ed7d..f25b86c 100644 --- a/lib/spec/lib/svn_wunderbar_spec.rb +++ b/lib/spec/lib/svn_wunderbar_spec.rb @@ -266,7 +266,7 @@ describe "ASF::SVN.svnmucc_" do expect(ts[4]).to eq('usage: svnmucc ACTION...') # output of svnmucc help end it "svnmucc_([['help']],'test',ENV_.new,_,nil,{root: root}) should include --root-url" do -root = ASF::SVN.svnurl!('site-root') +root = ASF::SVN.svnurl!(SAMPLE_SVN_NAME) rc, out = _json do |_| ASF::SVN.svnmucc_([['help']],'test',ENV_.new,_,nil,{root: root}) end
[whimsy] 01/02: Extract sample names as constants
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git commit 8553732bcf0efbe3eac348d9e0cf512b960e7110 Author: Sebb AuthorDate: Mon Jul 6 16:27:37 2020 +0100 Extract sample names as constants Also change templates as it was only used here --- lib/spec/lib/svn_spec.rb | 67 ++-- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/lib/spec/lib/svn_spec.rb b/lib/spec/lib/svn_spec.rb index 6732f2d..8439be7 100644 --- a/lib/spec/lib/svn_spec.rb +++ b/lib/spec/lib/svn_spec.rb @@ -5,37 +5,42 @@ require 'spec_helper' require 'whimsy/asf' require 'wunderbar' +SAMPLE_SVN_NAME = 'minutes' # name of checkout of public SVN dir +SAMPLE_SVN_URL_RE = %r{https://.+/minutes} +SAMPLE_MISSING_NAME = '__templates' # no such entry +SAMPLE_ALIAS = 'Bills' # depth: 'skip' + describe ASF::SVN do # repo_entry should only include repos that have local workspaces describe "ASF::SVN.repo_entry" do -it "should return string for 'templates'" do - res = ASF::SVN.repo_entry('templates') +it "should return Hash for #{SAMPLE_SVN_NAME}" do + res = ASF::SVN.repo_entry(SAMPLE_SVN_NAME) expect(res.class).to equal(Hash) end -it "should return nil for 'Bills'" do - res = ASF::SVN.repo_entry('Bills') +it "should return nil for #{SAMPLE_ALIAS}" do + res = ASF::SVN.repo_entry(SAMPLE_ALIAS) expect(res.class).to equal(NilClass) end -it "should return nil for '__templates'" do - res = ASF::SVN.repo_entry('__templates') +it "should return nil for #{SAMPLE_MISSING_NAME}" do + res = ASF::SVN.repo_entry(SAMPLE_MISSING_NAME) expect(res.class).to equal(NilClass) end end describe "ASF::SVN.repo_entry!" do -it "should return string for 'templates'" do - res = ASF::SVN.repo_entry!('templates') +it "should return string for #{SAMPLE_SVN_NAME}" do + res = ASF::SVN.repo_entry!(SAMPLE_SVN_NAME) expect(res.class).to equal(Hash) end -it "should fail for '__templates'" do +it "should fail for #{SAMPLE_MISSING_NAME}" do expect{ -ASF::SVN.repo_entry!('__templates') +ASF::SVN.repo_entry!(SAMPLE_MISSING_NAME) }.to raise_error(Exception) end @@ -44,35 +49,35 @@ describe ASF::SVN do # svnurl should include aliases describe "ASF::SVN.svnurl" do -it "should return URL for 'templates'" do - res = ASF::SVN.svnurl('templates') +it "should return URL for #{SAMPLE_SVN_NAME}" do + res = ASF::SVN.svnurl(SAMPLE_SVN_NAME) expect(res.class).to equal(String) - expect(res).to match(%r{https://.+/templates}) + expect(res).to match(SAMPLE_SVN_URL_RE) end -it "should return URL for 'Bills'" do - res = ASF::SVN.svnurl('Bills') +it "should return URL for #{SAMPLE_ALIAS}" do + res = ASF::SVN.svnurl(SAMPLE_ALIAS) expect(res.class).to equal(String) expect(res).to match(%r{https://.+/Bills}) end -it "should return nil for '__templates'" do - res = ASF::SVN.svnurl('__templates') +it "should return nil for #{SAMPLE_MISSING_NAME}" do + res = ASF::SVN.svnurl(SAMPLE_MISSING_NAME) expect(res.class).to equal(NilClass) end end describe "ASF::SVN.svnurl!" do -it "should return URL for 'templates'" do - res = ASF::SVN.svnurl!('templates') +it "should return URL for #{SAMPLE_SVN_NAME}" do + res = ASF::SVN.svnurl!(SAMPLE_SVN_NAME) expect(res.class).to equal(String) - expect(res).to match(%r{https://.+/templates}) + expect(res).to match(SAMPLE_SVN_URL_RE) end -it "should fail for '__templates'" do +it "should fail for #{SAMPLE_MISSING_NAME}" do expect { -ASF::SVN.svnurl!('__templates') +ASF::SVN.svnurl!(SAMPLE_MISSING_NAME) }.to raise_error(Exception) end @@ -81,11 +86,11 @@ describe ASF::SVN do # repo_entries should exclude aliases describe "ASF::SVN.repo_entries" do -it "should return hash with templates but not Bills" do +it "should return hash with #{SAMPLE_SVN_NAME} but not #{SAMPLE_ALIAS}" do res = ASF::SVN.repo_entries expect(res.class).to equal(Hash) - expect(res['templates'].class).to equal(Hash) - expect(res['Bills']).to equal(nil) + expect(res[SAMPLE_SVN_NAME].class).to equal(Hash) + expect(res[SAMPLE_ALIAS]).to equal(nil) end end @@ -93,18 +98,18 @@ describe ASF::SVN do # find returns local workspace so excludes aliases describe "ASF::SVN.find" do -it "should return string for 'templates'" do - res = ASF::SVN.find('templates') +it "should return string for #{SAMPLE_SVN_NAME}" do + res = ASF::SVN.find(SAMPLE_SVN_NAME) expect(res.class).to equal(String) end -it "should return nil for
[whimsy] branch master updated (1cbd9c3 -> da7f445)
This is an automated email from the ASF dual-hosted git repository. sebb pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git. from 1cbd9c3 Fix up insecure op crash new 8553732 Extract sample names as constants new da7f445 templates no longer needed The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: lib/spec/lib/svn_spec.rb | 67 ++ lib/spec/spec_helper.rb| 6 ++- lib/test/svn/{templates => minutes}/README.txt | 0 repository.yml | 9 ++-- 4 files changed, 43 insertions(+), 39 deletions(-) rename lib/test/svn/{templates => minutes}/README.txt (100%)
[whimsy] 02/02: templates no longer needed
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git commit da7f4456add6d0d6fc33d509382d67965277c0b8 Author: Sebb AuthorDate: Mon Jul 6 16:40:52 2020 +0100 templates no longer needed --- lib/spec/lib/svn_spec.rb | 4 +--- lib/spec/spec_helper.rb| 6 +- lib/test/svn/{templates => minutes}/README.txt | 0 repository.yml | 9 +++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/spec/lib/svn_spec.rb b/lib/spec/lib/svn_spec.rb index 8439be7..3edd543 100644 --- a/lib/spec/lib/svn_spec.rb +++ b/lib/spec/lib/svn_spec.rb @@ -5,8 +5,6 @@ require 'spec_helper' require 'whimsy/asf' require 'wunderbar' -SAMPLE_SVN_NAME = 'minutes' # name of checkout of public SVN dir -SAMPLE_SVN_URL_RE = %r{https://.+/minutes} SAMPLE_MISSING_NAME = '__templates' # no such entry SAMPLE_ALIAS = 'Bills' # depth: 'skip' @@ -120,7 +118,7 @@ describe ASF::SVN do res = ASF::SVN.private_public expect(res.size()).to equal(2) expect(res[0].size).to equal(14) # will need to be adjusted from time to time - expect(res[1].size).to equal(9) # ditto. + expect(res[1].size).to equal(8) # ditto. end end diff --git a/lib/spec/spec_helper.rb b/lib/spec/spec_helper.rb index e9f74bd..e6930b8 100644 --- a/lib/spec/spec_helper.rb +++ b/lib/spec/spec_helper.rb @@ -1,13 +1,17 @@ $LOAD_PATH.unshift '/srv/whimsy/lib' require 'whimsy/asf' + +SAMPLE_SVN_NAME = 'minutes' # name of checkout of public SVN dir +SAMPLE_SVN_URL_RE = %r{https://.+/minutes} + # Override with test data if there is no checkout available (allows local use) if ENV['RAKE_TEST'] == 'TRUE' or not (ASF::SVN.find('apmail_bin') and ASF::SVN.find('board')) TEST_DATA = true # Test data is smaller so some tests need adjusting puts "Overriding data directories" ASF::SVN['apmail_bin'] = File.expand_path('../test/svn/apmail_bin', __dir__) ASF::SVN['board'] = File.expand_path('../test/svn/board', __dir__) - ASF::SVN['templates'] = File.expand_path('../test/svn/templates', __dir__) + ASF::SVN[SAMPLE_SVN_NAME] = File.expand_path('../test/svn/minutes', __dir__) ASF::Config[:subscriptions] = File.expand_path('../test/subscriptions', __dir__) else TEST_DATA = false diff --git a/lib/test/svn/templates/README.txt b/lib/test/svn/minutes/README.txt similarity index 100% rename from lib/test/svn/templates/README.txt rename to lib/test/svn/minutes/README.txt diff --git a/repository.yml b/repository.yml index ae224d2..47c5b3a 100644 --- a/repository.yml +++ b/repository.yml @@ -65,10 +65,10 @@ depth: delete list: true - comdev-foundation: + comdev-foundation: # only want projects.json? url: asf/comdev/projects.apache.org/trunk/site/json/foundation - comdevtalks: + comdevtalks: # only used in example.cgi? url: asf/comdev/site/trunk/content/speakers/talks depth: files @@ -142,7 +142,7 @@ url: private/foundation/officers depth: files - officers_historic: + officers_historic: # only need committers.json ? url: private/foundation/officers/historic officers_surveys: @@ -175,6 +175,3 @@ steve: url: asf/steve/trunk - - templates: -url: asf/infrastructure/site/trunk/templates
[whimsy] branch master updated: Fix up insecure op crash
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 1cbd9c3 Fix up insecure op crash 1cbd9c3 is described below commit 1cbd9c3431d77989c6fed4a3a756e311a366c284 Author: Sebb AuthorDate: Mon Jul 6 12:07:30 2020 +0100 Fix up insecure op crash --- tools/wwwdocs.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/wwwdocs.rb b/tools/wwwdocs.rb index 28a9f9a..0612539 100755 --- a/tools/wwwdocs.rb +++ b/tools/wwwdocs.rb @@ -90,7 +90,7 @@ def get_auth hash = {} files = Dir[WHIMSY_CONF] return hash unless files.size == 1 # must match just one - file = files.first + file = files.first.untaint loc = nil File.read(file).each_line do |l| if l =~ %r{]+)>}
[whimsy] branch master updated: Docco
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 97f0026 Docco 97f0026 is described below commit 97f0026a0b72108595781df25c0683b786e30e13 Author: Sebb AuthorDate: Mon Jul 6 11:50:48 2020 +0100 Docco --- repository.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/repository.yml b/repository.yml index 75f7935..ae224d2 100644 --- a/repository.yml +++ b/repository.yml @@ -9,6 +9,7 @@ url: https://github.com/letsencrypt/letsencrypt depth: 1 + # For ruby2js demo only (see www/ruby2js.cgi) ruby2js: url: https://github.com/rubys/ruby2js.git depth: 1
[whimsy] branch master updated: No longer depend on Puppet3 checkout
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 90b5b27 No longer depend on Puppet3 checkout 90b5b27 is described below commit 90b5b272b011fde9e90ea476ab5d5a934aac68d0 Author: Sebb AuthorDate: Mon Jul 6 11:33:25 2020 +0100 No longer depend on Puppet3 checkout --- repository.yml | 5 - 1 file changed, 5 deletions(-) diff --git a/repository.yml b/repository.yml index 264027c..75f7935 100644 --- a/repository.yml +++ b/repository.yml @@ -5,11 +5,6 @@ --- :git: - infrastructure-puppet: -url: https://github.com/apache/infrastructure-puppet.git -branch: deployment -depth: 1 - letsencrypt: url: https://github.com/letsencrypt/letsencrypt depth: 1
[whimsy] branch master updated: Don't assume infra-puppet is checked out
This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/whimsy.git The following commit(s) were added to refs/heads/master by this push: new 93cfd68 Don't assume infra-puppet is checked out 93cfd68 is described below commit 93cfd68f5c800ef5d7afa90eebbe8b96d8b6b5f1 Author: Sebb AuthorDate: Mon Jul 6 11:31:31 2020 +0100 Don't assume infra-puppet is checked out --- tools/mkconf.rb| 5 +++-- tools/vhosttest.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/mkconf.rb b/tools/mkconf.rb index 42ae703..d81190e 100755 --- a/tools/mkconf.rb +++ b/tools/mkconf.rb @@ -4,8 +4,9 @@ # Generate a whimsy.local version of the deployed whimsy configuration # # Example usage: -# ruby vhosttest.rb | ruby mkconf.rb /private/etc/apache2/other/whimsy.conf -# +# ruby vhosttest.rb | ruby mkconf.rb /private/etc/apache2/other/whimsy.conf +# or if you have ssh access to the whimsy host: +# ruby mkconf.rb /private/etc/apache2/other/whimsy.conf if STDIN.tty? conf = `ssh whimsy.apache.org cat \ diff --git a/tools/vhosttest.rb b/tools/vhosttest.rb index 4f22c94..5f1758d 100755 --- a/tools/vhosttest.rb +++ b/tools/vhosttest.rb @@ -9,7 +9,7 @@ $LOAD_PATH.unshift '/srv/whimsy/lib' require 'whimsy/asf' # Allow override of local repo -IP = ARGV.shift || ASF::Git['infrastructure-puppet'] +IP = ARGV.shift or raise RuntimeError.new "Need path to infrastructure puppet checkout" module Puppet module Parser