toy-rubygems-bundler 1.4.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 67962f532a1c14ae951c7915a41b79576678e9a7226d3aa93d8960d5a05c10df
4
+ data.tar.gz: 71defd142ffad4eb627c251dc554dd5db6f3c1ae318553654e7f2636cab4b4b1
5
+ SHA512:
6
+ metadata.gz: d1c18b9ba3b23aa0407635e3c12a7f6d3a8c4b17a61f36e31a3bb93aad3bdd77d8924a7fa4cd63f88d307ee4398961609d27f2d09ed0d7c389c9d7cb0c37ca33
7
+ data.tar.gz: f76aafe411a61f66fca4c112079b55c01ff5cd20001244a1be4e6e86e244f302a110410dd27a4766b0460811da7539dd93a3540ae7be0dfc4addb1d145071004
data/.gem.config ADDED
@@ -0,0 +1 @@
1
+ gem_tag_prefix=v
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ .idea
2
+ *.gem
3
+ .bundle
4
+ Gemfile.lock
5
+ pkg/*
data/.noexec.yaml ADDED
@@ -0,0 +1,2 @@
1
+ exclude:
2
+ - tf
data/.travis.yml ADDED
@@ -0,0 +1,39 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - ruby-head
7
+ - rbx
8
+ before_install:
9
+ - 'rm -rvf $rvm_path/gems/*/{bin,gems}/{rubygems-bundler-,executable-hooks-}* $rvm_path/gems/*/bin/ruby_*_wrapper'
10
+ - hash -r
11
+ - 'echo insecure >> ~/.curlrc'
12
+ - 'curl -sSL https://get.smf.sh | sh'
13
+ - 'export PATH=~/.sm/bin:$PATH'
14
+ - 'gem install executable-hooks'
15
+ - 'sm ext install gem mpapis/sm_gem'
16
+ install: gem install tf -v '>=0.4.1'
17
+ before_script:
18
+ - unset BUNDLE_GEMFILE
19
+ script: tf --text test/dtf/*
20
+ notifications:
21
+ irc:
22
+ channels:
23
+ - "irc.freenode.org#rubygems-bundler"
24
+ email:
25
+ recipients:
26
+ - mpapis@gmail.com
27
+ on_failure: change
28
+ matrix:
29
+ include:
30
+ - rvm: jruby-head
31
+ env: 'JRUBY_OPTS="-X-C --server -J-XX:+TieredCompilation"'
32
+ jdk: openjdk7
33
+ allow_failures:
34
+ - rvm: jruby-head
35
+ env: 'JRUBY_OPTS="-X-C --server -J-XX:+TieredCompilation"'
36
+ jdk: openjdk7
37
+ - rvm: ruby-head
38
+ - rvm: rbx
39
+ fast_finish: true
data/CHANGELOG.md ADDED
@@ -0,0 +1,179 @@
1
+ # Changelog
2
+
3
+ ## 1.4.5
4
+ date: 2018-06-25
5
+
6
+ - force executable-hooks 1.5.0+, update rvm/rvm#4408
7
+
8
+ ## 1.4.4
9
+ date: 2014-06-06
10
+
11
+ - force newer executable-hooks, update wayneeseguin/rvm#2894
12
+
13
+ ## 1.4.3
14
+ date: 2014-04-04
15
+
16
+ - deferred log2 for performance, update #59
17
+ - fix filtering gem executables on old rubygems, fix #59
18
+
19
+ ## 1.4.2
20
+ date: 2013-10-28
21
+
22
+ - reset BUNDLE_GEMFILE before finishing, fix #57
23
+
24
+ ## 1.4.1
25
+ date: 2013-10-23
26
+
27
+ - restore loading Bundler.setup for git gems to work, update mpapis/bundler-unload#3
28
+
29
+ ## 1.4.0
30
+ date: 2013-10-20
31
+
32
+ - skip unload! / load round trip when binary found in Gemfile, avoids mpapis/bundler-unload#3
33
+
34
+ ## 1.3.4
35
+ date: 2013-10-04
36
+
37
+ - move loading yaml when it is needed, fix #53
38
+
39
+ ## 1.3.3
40
+ date: 2013-09-24
41
+
42
+ - bump required versions of dependencies
43
+ - improved logging in debug mode
44
+
45
+ ## 1.3.2
46
+ date: 2013-09-22
47
+
48
+ - fix detecting program name after fixing it, update mpapis/executable-hooks#5, update mpapis/bundler-unload#2
49
+
50
+ ## 1.3.1
51
+ date: 2013-09-22
52
+
53
+ - bump required versions of dependencies
54
+
55
+ ## 1.3.0
56
+ date: 2013-09-21
57
+
58
+ - Add license to gemspec, merge #51, fix #50
59
+ - convert `noexec` to a class and move unscoped code to it
60
+ - fail if the Gemfile version of gem can not be found, fix #37
61
+ - extracted hooking into rubygems to executable-hooks gem, fix #44
62
+
63
+ ## 1.2.2
64
+ date: 2013-07-10
65
+
66
+ - remove references to rubygems_bundler_spec, update #49
67
+
68
+ ## 1.2.1
69
+ date: 2013-07-05
70
+
71
+ - improved checking if rubygems-bundler is loaded, fix #49
72
+
73
+ ## 1.2.0
74
+ date: 2013-06-02
75
+
76
+ - extracted bundler unloading to `bundler-unload` gem
77
+ - fix saving / restoring gem specifications, update #41
78
+ - add a global variable to ignore executables, fix #47
79
+ - fix loading specs to restore in older rubygems, update #41
80
+ - do not break on broken Gemfile, fix #41
81
+
82
+ ## 1.1.0
83
+ date: 2012-09-05
84
+
85
+ - move precheck to the beginning - fix `bundle _1.0.7_ ...`
86
+ - fix #33, do not pollute global namespace
87
+ - allow disabling with `NOEXEC_DISABLE=1` and deprecate `NOEXEC=0`
88
+
89
+ ## 1.0.7
90
+ date: 2012-08-21
91
+
92
+ - fix #27, fix #32, in case of bundler errors just ignore candidate gemfile
93
+
94
+ ## 1.0.6
95
+ date: 2012-08-10
96
+
97
+ - fix #32, Gemfile should be a file
98
+
99
+ ## 1.0.5
100
+ date: 2012-08-09
101
+
102
+ - fixing dependencies dtf -> tf
103
+
104
+ ## 1.0.4
105
+ date: 2012-08-08
106
+
107
+ - fix #30, fix detecting old version in warning
108
+
109
+ ## 1.0.3
110
+ date: 2012-06-20
111
+
112
+ - fix #28, check Bundler.settings only when `in_bundle?`
113
+
114
+ ## 1.0.2
115
+ date: 2012-05-18
116
+
117
+ - fix #24 disable loading plugin in case of disabled shared gems in bundler
118
+
119
+ ## 1.0.1
120
+ date: 2012-05-17
121
+
122
+ - fix #20, #22 improved detection of Bundler.setup
123
+ - fix #19, #25 no more failing for git gems
124
+
125
+ ## 1.0.0
126
+ date: 2012-05-09
127
+
128
+ - removed the need to modify ~/.gemrc
129
+ - change extensions code to an automatic installer
130
+ - added uninstaller
131
+ - removed old parts - there is only one way
132
+ - fix bug with rubygems < 1.5
133
+
134
+ ## 0.9.2
135
+ date: 2012-05-05
136
+
137
+ - fix #16 fix --env-shebang
138
+
139
+ ## 0.9.1
140
+ date: 2012-05-05
141
+
142
+ - fix #15 respect --env-shebang
143
+ - add latest rubygems changes
144
+
145
+ ## 0.9.0
146
+ date: 2012-04-03
147
+
148
+ - joining forces with noexec from
149
+ [Joshua Hull - @joshbuddy](https://github.com/joshbuddy)
150
+
151
+ ## 0.3.0
152
+ date: 2012-04-02
153
+
154
+ - add support for [noexec gem](https://github.com/joshbuddy/noexec)
155
+ from [Joshua Hull - @joshbuddy](https://github.com/joshbuddy)
156
+
157
+ ## 0.2.8
158
+ date: 2011-12-27
159
+
160
+ - fix #8 fixed bindir for systems with Gem.bindir outside of Gem.dir
161
+ - merge #9 Prepend "ruby_" to wrapper filename
162
+
163
+ ## 0.2.7
164
+ date: 2011-09-21
165
+
166
+ - added uninstallation note
167
+ - possibly fixed installation issue for older rubygems version (yaml related)
168
+
169
+ ## 0.2.6
170
+ date: 2011-09-16
171
+
172
+ - improved default blacklist handling
173
+ - set $PROGRAM_NAME - update for thin
174
+ - add group write permisions for binary
175
+
176
+ ## 0.2.5
177
+ date: 2011-06-28
178
+
179
+ - let `bundle*` commands handle bundler by itself
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ #ruby=1.8.7
4
+
5
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2011-2012 Josh Hull and Michal Papis
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
data/README.md ADDED
@@ -0,0 +1,142 @@
1
+ [![Build Status](https://secure.travis-ci.org/mpapis/rubygems-bundler.png?branch=1.0.0)](http://travis-ci.org/mpapis/rubygems-bundler)
2
+
3
+ # Note for RubyGems >= 2.2.0
4
+
5
+ Generally, this gem is not needed on RubyGems >= 2.2.0. Simply set the `RUBYGEMS_GEMDEPS`
6
+ environment variable to either the path of your Gemfile or `-` to auto-discover in parent directories.
7
+
8
+ However, not all `Gemfile` syntax is supported yet. If you find bugs using `RUBYGEMS_GEMDEPS`, please
9
+ [report them](https://github.com/rubygems/rubygems/issues).
10
+
11
+ # rubygems-bundler && Noexec
12
+
13
+ Let's stop using `bundle exec`, kthx.
14
+
15
+ Introduction of the 1.0.0 release: http://niczsoft.com/2012/05/rubygems-bundler-integration-gem-1-0-0/
16
+
17
+ ## Installation
18
+
19
+ gem install rubygems-bundler
20
+
21
+ Next run (once):
22
+
23
+ gem regenerate_binstubs
24
+
25
+ And you're done!
26
+
27
+ ## Configuration
28
+
29
+ ### ~/.gemrc
30
+
31
+ You no longer need to modify `~/.gemrc`,
32
+ just remove the old entry to be sure it works as expected.
33
+ If you need to use your own `custom_shebang`,
34
+ you can define it in `~/.gemrc` to override the default:
35
+
36
+ custom_shebang: $env <your_custom_shebang_program>
37
+
38
+ ### ./.noexec.yaml
39
+
40
+ Though you can let noexec do it's own thing and rely on looking up your binary via your Gemfile,
41
+ you can also specify which binaries you want included or excluded.
42
+ Create a .noexec.yaml file along side any Gemfiles you want to use.
43
+ Then, to enable (or disable) the usage of your particular binary into your bundle,
44
+ add an include or exclude section. For example:
45
+
46
+ ```yml
47
+ exclude: [rake]
48
+ ```
49
+ Or,
50
+
51
+ ```yml
52
+ include: [haml]
53
+ ```
54
+
55
+ ### Disabling executables
56
+
57
+ In case you know certain binaries should not use `bundler` you can define a list of this binaries:
58
+
59
+ export NOEXEC_EXCLUDE="gist bluepill"
60
+
61
+ Put it into `~/.bashrc` or other shell initialization file to make it persistent.
62
+
63
+ ### Disabling any commands
64
+
65
+ In case you need explicitly skip loading `Bundler.setup`, prefix your command with `NOEXEC_DISABLE=1`:
66
+
67
+ NOEXEC_DISABLE=1 rails new app
68
+
69
+ To disable for whole shell session:
70
+
71
+ export NOEXEC_DISABLE=1
72
+
73
+ And to restore automatic behavior:
74
+
75
+ unset NOEXEC_DISABLE
76
+
77
+ The old method is still available and might kick in if your tools use `NOEXEC` environment variable:
78
+
79
+ NOEXEC=0 rails new app
80
+ NOEXEC=skip gist
81
+
82
+ both `0` and `skip` will disable the gem, this method is deprecated and will be removed with 1.2.0.
83
+
84
+ ## Problems?
85
+
86
+ Things not going the way you'd like? Try your command again with
87
+ `NOEXEC_DEBUG=1` set and create a ticket. I'll fix it right away!
88
+
89
+ ### IRC support:
90
+
91
+ [#rubygems-bundler on irc.freenode.net](http://webchat.freenode.net/?channels=#rubygems-bundler)
92
+
93
+ If you do not get an answer relatively quickly,
94
+ be sure to leave your email address so someone can get back to you later.
95
+
96
+ ## How does this work (ruby_noexec_wrapper)
97
+
98
+ It modifies gem wrappers shebang to load `ruby_noexec_wrapper`.
99
+ Then, when you run gem binaries, it takes a look at your working directory,
100
+ and every directory above it until it can find a `Gemfile`.
101
+ If the executable you're running is present in your Gemfile,
102
+ it switches to using that `Gemfile` instead (via `Bundle.setup`).
103
+
104
+ Rubygems and Bundler integration makes executable wrappers
105
+ generated by rubygems aware of bundler.
106
+
107
+ rubygems-bundler was merged with [noexec gem](https://github.com/joshbuddy/noexec) in version **0.9.0**.
108
+
109
+ ## Uninstallation
110
+
111
+ gem uninstall rubygems-bundler
112
+
113
+ ### Uninstallation of executable-hooks
114
+
115
+ `rubygems-bundler` does not change the shebangs itself anymore, this was extracted to `executable-hooks`:
116
+
117
+ executable-hooks-uninstaller
118
+ gem uninstall executable-hooks
119
+
120
+ this will set all gems to `/usr/bin/env ruby`, which is one of the safest choices (especially when using rvm).
121
+
122
+ ### Removing from RVM
123
+
124
+ When using rvm, these additional steps will ensure this gem is removed and not installed again:
125
+
126
+ rvm get stable --without-gems="rubygems-bundler executable-hooks"
127
+ rvm all-gemsets do gem uninstall --all --executables rubygems-bundler executable-hooks
128
+
129
+
130
+ ## Authors
131
+
132
+ - Joshua Hull <joshbuddy@gmail.com>
133
+ - Michal Papis <mpapis@gmail.com>
134
+
135
+ ## Thanks
136
+
137
+ - Carl Lerche : help with the noexec code
138
+ - Evan Phoenix : support on rubygems internals
139
+ - Yehuda Katz : the initial patch code, helping on making it even more usable
140
+ - Loren Segal : shebang customization idea and explanations
141
+ - Wayne E. Seguin : support in writing good code
142
+ - André Arko : clarifications how rubygems/bundler works
@@ -0,0 +1,131 @@
1
+ require "rubygems"
2
+
3
+ class Noexec
4
+ DEBUG = ENV['NOEXEC_DEBUG']
5
+ CURRENT = Dir.pwd
6
+
7
+ attr_reader :bin, :gemfile, :rubygems_specs
8
+
9
+ def initialize(bin)
10
+ log "Bin used: #{bin}"
11
+ bin = bin.split(/ /)
12
+ @bin = File.basename(bin[1]||bin[0])
13
+ log "Bin calculated: #{@bin}"
14
+ end
15
+
16
+ def log(msg)
17
+ puts msg if Noexec::DEBUG
18
+ end
19
+
20
+ def log2(msg=nil)
21
+ if Noexec::DEBUG == "2"
22
+ msg=yield if msg.nil? && block_given?
23
+ puts msg
24
+ end
25
+ end
26
+
27
+ def candidate?
28
+ log "Examining #{gemfile}"
29
+ config_file = File.expand_path('../.noexec.yaml', gemfile)
30
+ if File.exist?(config_file)
31
+ log "Using config file at #{config_file}"
32
+ require "yaml"
33
+ config = YAML::load_file(config_file)
34
+ unless config['include'].nil? ^ config['exclude'].nil?
35
+ raise "You cannot have both an include and exclude section in your #{config_file.inspect}"
36
+ end
37
+ if config['include'] && config['include'].include?(bin)
38
+ log "Binary included by config"
39
+ return true
40
+ elsif config['exclude'] && config['exclude'].include?(bin)
41
+ log "Binary excluded by config"
42
+ return false
43
+ end
44
+ log "Config based matching didn't find it, resorting to Gemfile lookup"
45
+ end
46
+ runtime = Bundler.load
47
+ log2(){ "runtime specs: #{runtime.specs.map{|g| "#{g.name}-#{g.version}"}*" "}" }
48
+ if rubygems_spec # that single gem
49
+ missing_spec = runtime.
50
+ instance_variable_get(:@definition).
51
+ missing_specs.
52
+ detect{|spec| spec.name == rubygems_spec.name}
53
+ if missing_spec
54
+ puts "\e[31mCould not find proper version of #{missing_spec.to_s} in any of the sources\e[0m"
55
+ puts "\e[33mRun `bundle install` to install missing gems.\e[0m"
56
+ exit Bundler::GemNotFound.new.status_code
57
+ end
58
+ end
59
+ if runtime.specs.detect{ |spec| spec.executables.include?(bin) }
60
+ return true
61
+ end
62
+ Bundler.unload!(rubygems_specs)
63
+ false
64
+ rescue Bundler::BundlerError, Bundler::GemfileError => e
65
+ warn "Ignoring candidate #{gemfile}:\n#{e}" if Noexec::DEBUG
66
+ false
67
+ end
68
+
69
+ def old_specs
70
+ if Hash === rubygems_specs
71
+ then @rubygems_specs.values
72
+ else @rubygems_specs
73
+ end
74
+ end
75
+
76
+ def rubygems_spec
77
+ @rubygems_spec ||= old_specs.detect{|spec| spec.executables.include?(bin) }
78
+ end
79
+
80
+ def setup
81
+ puts "Noexec - starting check" if Noexec::DEBUG
82
+ require "bundler-unload"
83
+
84
+ @rubygems_specs = Bundler.rubygems.plain_specs # save it for unloading and checking binary
85
+ log2(){ "rubygems_specs: #{rubygems_specs.map{|g| "#{g.name}-#{g.version}"}*" "}" }
86
+
87
+ @gemfile = ENV['BUNDLE_GEMFILE'] || File.join(Noexec::CURRENT, "Gemfile")
88
+ initial_env_gemfile = ENV['BUNDLE_GEMFILE']
89
+
90
+ while true
91
+ ENV['BUNDLE_GEMFILE'] = gemfile
92
+ if File.file?(gemfile) && candidate?
93
+ log "Keeping #{gemfile} loaded"
94
+ Bundler.setup
95
+ return
96
+ end
97
+ new_gemfile = File.expand_path("../../Gemfile", gemfile)
98
+ break if new_gemfile == gemfile
99
+ @gemfile = new_gemfile
100
+ end
101
+ log "No valid Gemfile found, moving on"
102
+ ENV['BUNDLE_GEMFILE'] = initial_env_gemfile
103
+ rescue LoadError
104
+ warn "bundler not being used, unable to load" if Noexec::DEBUG
105
+ ENV['BUNDLE_GEMFILE'] = initial_env_gemfile
106
+ end
107
+
108
+ def check
109
+ if %w(bundle rubygems-bundler-uninstaller).include?(bin)
110
+ log "Noexec - skipped binary: #{bin}"
111
+
112
+ elsif ENV['NOEXEC_EXCLUDE'] && ENV['NOEXEC_EXCLUDE'].split(/ /).include?(bin)
113
+ log "Noexec - ENV skipped binary: #{bin}"
114
+
115
+ elsif ENV['BUNDLE_GEMFILE'] && ENV['BUNDLE_BIN_PATH'] && ENV['RUBYOPT']
116
+ log "Noexec - already in 'bundle exec'"
117
+
118
+ elsif %w(0 skip).include?( ENV['NOEXEC'] ) || ENV.key?('NOEXEC_DISABLE')
119
+ #TODO: deprecated in 1.1.0, to be removed later -- 2012.09.05
120
+ $stderr.puts "Warning, 'NOEXEC' environment variable is deprecated, switch to 'NOEXEC_DISABLE=1'." if ENV.key?('NOEXEC')
121
+ log "Noexec - disabled with environment variable"
122
+
123
+ else
124
+ setup
125
+
126
+ end
127
+ end
128
+
129
+ end
130
+
131
+ Noexec.new($0).check
@@ -0,0 +1,3 @@
1
+ module RubygemsBundler
2
+ VERSION = "1.4.5.1"
3
+ end
@@ -0,0 +1,8 @@
1
+ Gem.execute do |original_file|
2
+ require 'rubygems'
3
+ begin
4
+ require 'rubygems-bundler/noexec'
5
+ rescue LoadError
6
+ warn "unable to load rubygems-bundler/noexec" if ENV.key?('NOEXEC_DEBUG')
7
+ end
8
+ end
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+
4
+ Kernel.load File.expand_path("../lib/rubygems-bundler/version.rb", __FILE__)
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "toy-rubygems-bundler"
8
+ s.version = RubygemsBundler::VERSION
9
+ s.authors = ["Josh Hull", "Michal Papis"]
10
+ s.email = ["joshbuddy@gmail.com", "mpapis@gmail.com"]
11
+ s.homepage = "https://rvm.github.com/rubygems-bundler"
12
+ s.summary = %q{Stop using bundle exec}
13
+ s.description = %q{Stop using bundle exec. Integrate Rubygems and Bundler. Make rubygems generate bundler aware executable wrappers.}
14
+ s.license = 'Apache-2.0'
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+
19
+ s.add_dependency "bundler-unload", ">=1.0.2"
20
+ s.add_dependency "toy-executable-hooks", ">=1.6.2.1"
21
+ s.add_development_dependency "tf"
22
+ #s.add_development_dependency "smf-gem"
23
+ end
@@ -0,0 +1,8 @@
1
+ : init
2
+ sm gem install # match=/installed/
3
+ gem install rake # match=/1 gem installed/
4
+
5
+ : test binary
6
+ NOEXEC_DEBUG=1 rake --version
7
+ # match=/^Bin used: .*rake$/
8
+ # match=/^Bin calculated: rake$/
@@ -0,0 +1,31 @@
1
+ : init
2
+ export NOEXEC_DEBUG=1
3
+ export BUNDLE_GEMFILE=${TMPDIR:-/tmp}/rubygems-bunelr_bundler-test/Gemfile
4
+ rm -rf ${BUNDLE_GEMFILE%/*}
5
+ mkdir -p ${BUNDLE_GEMFILE%/*} # status=0
6
+ printf "source 'https://rubygems.org'\n\ngem 'haml'\n" | tee ${BUNDLE_GEMFILE}
7
+
8
+ yes | sm gem install # match=/installed/
9
+ gem regenerate_binstubs # status=0
10
+ gem install bundler --pre # status=0
11
+
12
+ bundle install # status=0
13
+
14
+ : exclusion
15
+ head -n 1 "$(which haml)" # match=/env ruby_executable_hooks/
16
+ haml --version # match=/Keeping .*/rubygems-bunelr_bundler-test/Gemfile loaded/; match!=/Binary excluded by config/
17
+ printf "exclude:\n - haml\n" > ${BUNDLE_GEMFILE%/*}/.noexec.yaml
18
+ haml --version # match!=/Keeping .*/rubygems-bunelr_bundler-test/Gemfile loaded/; match=/Binary excluded by config/
19
+
20
+ : generated/removed
21
+ head -n 1 "$(which haml)" # match=/env ruby_executable_hooks/
22
+ which ruby_executable_hooks # status=0
23
+
24
+ gem list # match=/haml/
25
+ executable-hooks-uninstaller # match=/haml/
26
+
27
+ head -n 1 "$(which haml)" # match!=/env ruby_executable_hooks/
28
+ which ruby_executable_hooks # status=1
29
+
30
+ gem uninstall -ax haml # match=/Successfully uninstalled/
31
+ rm -rf ${BUNDLE_GEMFILE%/*} # status=0
@@ -0,0 +1,20 @@
1
+ : init
2
+ typeset test_dir="${TMPDIR:-/tmp}/fdkngfk"
3
+ export GEM_HOME="${test_dir}/fake_gem_home"
4
+ export PATH="${test_dir}/fake_gem_home/bin:$PATH"
5
+
6
+ mkdir -p "${GEM_HOME}"
7
+ printf "source :rubygems\n\ngem 'rails', '<4.0.0'\n" > "${test_dir}/Gemfile"
8
+
9
+ yes | sm gem install # match=/installed/
10
+ gem install bundler # status=0
11
+
12
+ : test
13
+ builtin cd "${test_dir}"
14
+ bundle install # match=/Installing rails/
15
+ yes | NOEXEC=0 rails new app1
16
+ [[ -f app1/Gemfile ]] # status=0
17
+ [[ -f app1/Gemfile.lock ]] # status=0
18
+
19
+ : cleanup
20
+ rm -rf "${test_dir}"
@@ -0,0 +1,15 @@
1
+ : init
2
+ sm gem install # match=/installed/
3
+
4
+ yes | gem install haml # match=/1 gem installed/
5
+
6
+ head -n 1 $(which haml) # match=/env ruby_executable_hooks/
7
+ which ruby_executable_hooks # status=0
8
+
9
+ gem list # match=/haml/
10
+ executable-hooks-uninstaller # match=/haml/
11
+
12
+ head -n 1 $(which haml) # match!=/env ruby_executable_hooks/
13
+ which ruby_executable_hooks # status=1
14
+
15
+ gem uninstall -x haml # match=/Successfully uninstalled/
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: toy-rubygems-bundler
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Josh Hull
8
+ - Michal Papis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2023-01-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler-unload
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 1.0.2
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 1.0.2
28
+ - !ruby/object:Gem::Dependency
29
+ name: toy-executable-hooks
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.6.2.1
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 1.6.2.1
42
+ - !ruby/object:Gem::Dependency
43
+ name: tf
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ description: Stop using bundle exec. Integrate Rubygems and Bundler. Make rubygems
57
+ generate bundler aware executable wrappers.
58
+ email:
59
+ - joshbuddy@gmail.com
60
+ - mpapis@gmail.com
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - ".gem.config"
66
+ - ".gitignore"
67
+ - ".noexec.yaml"
68
+ - ".travis.yml"
69
+ - CHANGELOG.md
70
+ - Gemfile
71
+ - LICENSE
72
+ - README.md
73
+ - lib/rubygems-bundler/noexec.rb
74
+ - lib/rubygems-bundler/version.rb
75
+ - lib/rubygems_executable_plugin.rb
76
+ - rubygems-bundler.gemspec
77
+ - test/dtf/binary_comment_test.sh
78
+ - test/dtf/bundler_comment_test.sh
79
+ - test/dtf/rails_and_gemfile_comment_test.sh
80
+ - test/dtf/rubygems_comment_test.sh
81
+ homepage: https://rvm.github.com/rubygems-bundler
82
+ licenses:
83
+ - Apache-2.0
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubygems_version: 3.3.26
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: Stop using bundle exec
104
+ test_files:
105
+ - test/dtf/binary_comment_test.sh
106
+ - test/dtf/bundler_comment_test.sh
107
+ - test/dtf/rails_and_gemfile_comment_test.sh
108
+ - test/dtf/rubygems_comment_test.sh