vagrant-shell 0.2.15 → 0.2.16

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 CHANGED
@@ -1,7 +1,15 @@
1
- ---
2
- SHA512:
3
- metadata.gz: d14ca3df494cac0f48a470ecf757312df2f1c390b1ef8f7c0715a15c573c5055fff8efbe67158d8cb17a737f3650d0476665953c225cb8d887d8f3bd7cdf20db
4
- data.tar.gz: 4648f73c86070fa6ef929f8c497ff0096bfb5e8d82351163ff8fe5a3cab7949dcbd931d56136ee847af1808e7c00a14837ead347f881f3cf4b736dd0833a34f7
5
- SHA1:
6
- metadata.gz: fb216248e27fb0c22ed1325e808d8236506cfeaf
7
- data.tar.gz: 30e6ee1cd824649024136c1971a609b75112a184
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Y2I5ZjBlNjJlNjI1Y2MwZGY2ZWNkY2JlNjkzN2YxN2Q3YTlmZDFjNQ==
5
+ data.tar.gz: !binary |-
6
+ YWNjZjBmNDA5YWZjYzdkYmQ2OTBmNDgwMGYzMGExOWE1ZDcwNjRhZA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDhiYjNkNGFiNjM5NWVkOTAzMDBlZWQ0YmJhMjcwMTlhNzczY2ZmYzc1MTdh
10
+ OWVkNGMzNjg4Yzc4YmRmMTg1NGNiNjQ3Yjg2NzRkYWE3N2YwZWMzYjRiYTRl
11
+ ZTg4MjI5NGVkZmU4ZWU5NTFhYWJjN2NjZDVjMTlhZDY5ODM1MzE=
12
+ data.tar.gz: !binary |-
13
+ ODBlOTUxNzQ2MGNjYjZlNDY3YzM1NzAyZTU2ZTFhYjYzMzgyYjcxMTI0YzZi
14
+ N2Y3ODlhMmZiNzAyNWEzYzRlNmFiNGM2NWY3YmIzMjEwYmE5NjNkYTJhYWZh
15
+ NTEyNjE3M2Q1Y2Q2MmI2NGYyNGUzNzQxNTNhZTY1ZGJkMzQ0YjQ=
data/README.md CHANGED
@@ -11,8 +11,7 @@ terminate-instance, ssh-info, and read-state.
11
11
 
12
12
  See `libexec/shell-docker` for an example.
13
13
 
14
- **NOTE:** This plugin requires Vagrant 1.2+, ruby 1.9, and bundler. This
15
- README was tested using Ubuntu Raring.
14
+ **NOTE:** This plugin requires ruby 1.9 and bundler
16
15
 
17
16
  ## Demo
18
17
 
@@ -21,37 +20,24 @@ bundler and cached gems.
21
20
 
22
21
  Go to the demo directory:
23
22
 
24
- cd demo
25
-
26
- Run make to bundle gems, install the demo vagrant box:
27
-
28
- make
23
+ cd demo/docker
29
24
 
30
25
  Download the ubuntu docker image:
31
26
 
32
27
  docker pull ubuntu
33
28
 
29
+ Run make to bundle gems, install the demo vagrant box:
30
+
31
+ make
32
+
34
33
  Bring up the docker containers:
35
34
 
36
35
  bundle exec vagrant up
36
+ bundle exec vagrant status
37
37
 
38
38
  The commands passed to the container are sourced from `libexec/init-docker`.
39
39
  It sets up the root user with an ssh key suitable for vagrant.
40
40
 
41
41
  SSH into one of the the containers:
42
42
 
43
- bundle exec vagrant ssh default
44
-
45
- ## Testing without docker
46
-
47
- If docker is not available, use script `shell-self` to pretend the
48
- localhost is the vagrant instance. Be careful since `vagrant ssh` will
49
- connect to the localhost.
50
-
51
- Prepend `env SHELL_SCRIPT=self` to `bundle exec vagrant` so the
52
- `Vagrantfile` will adjust its docker behavior to suit localhost.
53
-
54
- ## TODO
55
-
56
- vagrant package
57
- vagrant reload?
43
+ bundle exec vagrant ssh ubuntu:precise
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.16
@@ -79,7 +79,15 @@ module VagrantPlugins
79
79
  end
80
80
 
81
81
  def find_script name
82
- File.expand_path("../../../libexec/shell-#{name}", __FILE__)
82
+ try_path = ENV['PATH'].split(/:/).flatten.inject([]) { |acc, p| x = File.join(p,"shell-#{name.to_s}"); File.exists?(x) && acc << x; acc }.first
83
+ if try_path
84
+ return try_path
85
+ end
86
+
87
+ try_load = $:.inject([]) { |acc, p| x = File.expand_path("../libexec/shell-#{name.to_s}", p); File.exists?(x) && acc << x; acc }.first
88
+ if try_load
89
+ return try_load
90
+ end
83
91
  end
84
92
 
85
93
  end
@@ -0,0 +1,23 @@
1
+ # fool vagrant into using ssh-agent keys instead of a fixed key on file
2
+ module Vagrant
3
+ module Util
4
+ class Platform
5
+ def self.solaris?
6
+ true
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require "net/ssh"
13
+
14
+ module Net::SSH
15
+ class << self
16
+ alias_method :old_start, :start
17
+
18
+ def start(host, username, opts)
19
+ opts[:keys_only] = false
20
+ self.old_start(host, username, opts)
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Shell
3
- VERSION = "0.2.15"
3
+ VERSION = File.read(File.expand_path("../../../VERSION", __FILE__)).strip
4
4
  end
5
5
  end
data/libexec/shell-docker CHANGED
@@ -8,6 +8,10 @@ cmd="$1"; shift
8
8
  case "$cmd" in
9
9
  run-instance)
10
10
  image="$1"; shift
11
+ cmd_bootstrap="$(which shell-docker-$image 2>&- || true)"
12
+ if [[ -x "$cmd_bootstrap" ]]; then
13
+ $cmd_bootstrap
14
+ fi
11
15
  docker run -d "$image" "$@"
12
16
  ;;
13
17
  terminate-instance)
File without changes
@@ -16,7 +16,7 @@ case "$cmd" in
16
16
  image="$1"; shift
17
17
  debug "run-instance $image"
18
18
  debug "run-instance args: $* 1>&2"
19
- echo $RANDOM
19
+ echo "$image"
20
20
  ;;
21
21
  terminate-instance)
22
22
  instance="$1"; shift
@@ -26,7 +26,7 @@ case "$cmd" in
26
26
  instance="$1"; shift
27
27
  debug "ssh-info $instance"
28
28
  debug "ssh-info: 127.0.0.1 22"
29
- echo "127.0.0.1 22"
29
+ echo "${instance} 22"
30
30
  ;;
31
31
  read-state)
32
32
  instance="$1"; shift
metadata CHANGED
@@ -1,32 +1,24 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vagrant-shell
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.15
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.16
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Tom Bombadil
8
8
  - Mitchell Hashimoto
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2014-01-17 00:00:00 Z
12
+ date: 2014-01-17 00:00:00.000000000 Z
14
13
  dependencies: []
15
-
16
14
  description: Enables Vagrant to manage machines using shell scripts
17
- email:
15
+ email:
18
16
  - amanibhavam@destructuring.org
19
17
  - mitchell@hashicorp.com
20
18
  executables: []
21
-
22
19
  extensions: []
23
-
24
20
  extra_rdoc_files: []
25
-
26
- files:
27
- - CHANGELOG.md
28
- - Gemfile
29
- - Gemfile.lock
21
+ files:
30
22
  - lib/vagrant-shell/action/is_created.rb
31
23
  - lib/vagrant-shell/action/message_already_created.rb
32
24
  - lib/vagrant-shell/action/message_not_created.rb
@@ -40,46 +32,39 @@ files:
40
32
  - lib/vagrant-shell/errors.rb
41
33
  - lib/vagrant-shell/plugin.rb
42
34
  - lib/vagrant-shell/provider.rb
35
+ - lib/vagrant-shell/ssh-agent.rb
43
36
  - lib/vagrant-shell/util/timer.rb
44
37
  - lib/vagrant-shell/version.rb
45
38
  - lib/vagrant-shell.rb
46
- - libexec/shell-aws
39
+ - locales/en.yml
47
40
  - libexec/shell-docker
48
- - libexec/shell-self
41
+ - libexec/shell-ec2
42
+ - libexec/shell-static
43
+ - CHANGELOG.md
49
44
  - LICENSE
50
- - locales/en.yml
51
- - Makefile
52
45
  - README.md
53
- - vagrant-shell-0.2.7.gem
54
- - vagrant-shell.gemspec
55
- - .gitignore
56
- - .gitsetup.yml
46
+ - VERSION
57
47
  homepage: http://destructuring.org/vagrant-shell
58
48
  licenses: []
59
-
60
49
  metadata: {}
61
-
62
50
  post_install_message:
63
51
  rdoc_options: []
64
-
65
- require_paths:
52
+ require_paths:
66
53
  - lib
67
- required_ruby_version: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: "0"
72
- required_rubygems_version: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
76
63
  version: 1.3.6
77
64
  requirements: []
78
-
79
65
  rubyforge_project: vagrant-shell
80
66
  rubygems_version: 2.1.11
81
67
  signing_key:
82
68
  specification_version: 4
83
69
  summary: Enables Vagrant to manage machines using shell scripts
84
70
  test_files: []
85
-
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- # OS-specific
2
- .DS_Store
3
-
4
- # Bundler/Rubygems
5
- /*.gem
6
- pkg/*
7
- tags
data/.gitsetup.yml DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- remotes:
3
- primary: git@github.com:destructuring/vagrant-shell
4
- secondary: git@bitbucket.org:destructuring/vagrant-shell
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
data/Gemfile.lock DELETED
@@ -1,14 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- vagrant-shell (0.2.6)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
-
10
- PLATFORMS
11
- ruby
12
-
13
- DEPENDENCIES
14
- vagrant-shell!
data/Makefile DELETED
@@ -1,6 +0,0 @@
1
- GEM := $(shell pwd | xargs basename)
2
- gem:
3
- gem build $(GEM).gemspec
4
-
5
- public:
6
- gem push $(shell ls -thd $(GEM)*.gem | head -1)
@@ -1,51 +0,0 @@
1
- $:.unshift File.expand_path("../lib", __FILE__)
2
- require "vagrant-shell/version"
3
-
4
- Gem::Specification.new do |s|
5
- s.name = "vagrant-shell"
6
- s.version = VagrantPlugins::Shell::VERSION
7
- s.platform = Gem::Platform::RUBY
8
- s.authors = [ "Tom Bombadil", "Mitchell Hashimoto" ]
9
- s.email = [ "amanibhavam@destructuring.org", "mitchell@hashicorp.com" ]
10
- s.homepage = "http://destructuring.org/vagrant-shell"
11
- s.summary = "Enables Vagrant to manage machines using shell scripts"
12
- s.description = "Enables Vagrant to manage machines using shell scripts"
13
-
14
- s.required_rubygems_version = ">= 1.3.6"
15
- s.rubyforge_project = "vagrant-shell"
16
-
17
- # The following block of code determines the files that should be included
18
- # in the gem. It does this by reading all the files in the directory where
19
- # this gemspec is, and parsing out the ignored files from the gitignore.
20
- # Note that the entire gitignore(5) syntax is not supported, specifically
21
- # the "!" syntax, but it should mostly work correctly.
22
- root_path = File.dirname(__FILE__)
23
- all_files = Dir.chdir(root_path) { Dir.glob("**/{*,.*}") }
24
- all_files.reject! { |file| [".", ".."].include?(File.basename(file)) }
25
- gitignore_path = File.join(root_path, ".gitignore")
26
- gitignore = File.readlines(gitignore_path)
27
- gitignore.map! { |line| line.chomp.strip }
28
- gitignore.reject! { |line| line.empty? || line =~ /^(#|!)/ }
29
-
30
- unignored_files = all_files.reject do |file|
31
- # Ignore any directories, the gemspec only cares about files
32
- next true if File.directory?(file)
33
-
34
- # Ignore any paths that match anything in the gitignore. We do
35
- # two tests here:
36
- #
37
- # - First, test to see if the entire path matches the gitignore.
38
- # - Second, match if the basename does, this makes it so that things
39
- # like '.DS_Store' will match sub-directories too (same behavior
40
- # as git).
41
- #
42
- gitignore.any? do |ignore|
43
- File.fnmatch(ignore, file, File::FNM_PATHNAME) ||
44
- File.fnmatch(ignore, File.basename(file), File::FNM_PATHNAME)
45
- end
46
- end
47
-
48
- s.files = unignored_files
49
- s.executables = unignored_files.map { |f| f[/^bin\/(.*)/, 1] }.compact
50
- s.require_path = 'lib'
51
- end