vagrant-guest-msys2 0.0.4 → 0.0.5

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,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 026ae197e2fb6b998bdff1de9b11cd6fab7e1354
4
- data.tar.gz: 4873e8ea80587ca21f15bc21b35ad1b06c09244d
3
+ metadata.gz: af7802cda0568d6a063b68cb3452f67648159dd0
4
+ data.tar.gz: fcfbc1a87759bb101f21de94f6b8810bc968c4cc
5
5
  SHA512:
6
- metadata.gz: 575ef68704c07d8726338c6ac1dd5fef45660eaba36778aa484966aa65ad138b4b7506e31caac62e290c16c42dba99a768dc3395d2fa03d33c648527cd0ef65b
7
- data.tar.gz: e25db1a2b8cdcd48767f56036535ad54436ed41c789dc3fe92baa400269ac605ea6d730520439bb3d4094c865e6ff9382e1a3da19b7e25523ed49d9e272901f8
6
+ metadata.gz: a395497aeffc997adbcf174e3393db6b91c3930ef52d0417ba8a18d8e889888a73e38bdaec566db87b395c5045e7d3b38afbebd7cf30a8ef92eb62d37557f0cf
7
+ data.tar.gz: 0a14c3a8f140356d7e35f77796b634c9eb23466468e71639f93613061ae78f8ad83430ca0f7d223e631858689580dec81aa202b041b540462102879682dc7520
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - 2.2.3
5
+
6
+ before_install:
7
+ - rvm @global do gem uninstall bundler --all --executables
8
+ - gem uninstall bundler --all --executables
9
+ - gem install bundler --version '1.12.5'
10
+
11
+ sudo: false
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/tsmolka/vagrant-guest-msys2.svg?branch=master)](https://travis-ci.org/tsmolka/vagrant-guest-msys2) [![Gem Version](https://badge.fury.io/rb/vagrant-guest-msys2.svg)](http://badge.fury.io/rb/vagrant-guest-msys2)
2
+
1
3
  vagrant-guest-msys2
2
4
  ==============
3
5
 
@@ -9,8 +9,6 @@ module VagrantPlugins
9
9
  end
10
10
 
11
11
  def self.change_host_name_and_wait(machine, name, sleep_timeout)
12
- machine.guest.capability(:powershell_check) if machine.guest.capability?(:powershell_check)
13
-
14
12
  escaped_name = name.gsub("'", "''")
15
13
 
16
14
  # If the configured name matches the current name, then bail
@@ -0,0 +1,40 @@
1
+ require "vagrant/util/template_renderer"
2
+ require "vagrant-guest-msys2/util/cap_helpers"
3
+
4
+ module VagrantPlugins
5
+ module GuestMSYS2
6
+ module Cap
7
+ class MountSharedFolder
8
+ def self.mount_virtualbox_shared_folder(machine, name, guestpath, options)
9
+ mount_shared_folder(machine, name, guestpath, "\\\\vboxsrv\\")
10
+ end
11
+
12
+ def self.mount_vmware_shared_folder(machine, name, guestpath, options)
13
+ mount_shared_folder(machine, name, guestpath, "\\\\vmware-host\\Shared Folders\\")
14
+ end
15
+
16
+ def self.mount_parallels_shared_folder(machine, name, guestpath, options)
17
+ mount_shared_folder(machine, name, guestpath, "\\\\psf\\")
18
+ end
19
+
20
+ def self.mount_smb_shared_folder(machine, name, guestpath, options)
21
+ machine.communicate.execute("cmdkey -add:#{options[:smb_host]} -user:#{options[:smb_username]} -pass:#{options[:smb_password]}")
22
+ mount_shared_folder(machine, name, guestpath, "\\\\#{options[:smb_host]}\\")
23
+ end
24
+
25
+ protected
26
+
27
+ def self.mount_shared_folder(machine, name, guestpath, vm_provider_unc_base)
28
+ name = name.gsub(/[\/\/]/,'_').sub(/^_/, '')
29
+ path = File.expand_path("../../scripts/mount_volume.ps1", __FILE__)
30
+ script = Vagrant::Util::TemplateRenderer.render(path, options: {
31
+ mount_point: guestpath,
32
+ share_name: name,
33
+ vm_provider_unc_path: vm_provider_unc_base + name,
34
+ })
35
+ machine.communicate.execute(Util::CapHelpers.wrap_powershell(script))
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -77,21 +77,16 @@ module VagrantPlugins
77
77
  Cap::Powershell
78
78
  end
79
79
 
80
- guest_capability("msys2", "powershell_install") do
81
- require_relative "cap/powershell"
82
- Cap::Powershell
83
- end
84
-
85
- guest_capability("msys2", "powershell_installed") do
86
- require_relative "cap/powershell"
87
- Cap::Powershell
88
- end
89
-
90
80
  guest_capability("msys2", "configure_networks") do
91
81
  require_relative "cap/configure_networks"
92
82
  Cap::ConfigureNetworks
93
83
  end
94
84
 
85
+ guest_capability("msys2", "mount_virtualbox_shared_folder") do
86
+ require_relative "cap/mount_shared_folder"
87
+ Cap::MountSharedFolder
88
+ end
89
+
95
90
  protected
96
91
 
97
92
  def self.init!
@@ -0,0 +1,48 @@
1
+ function Test-ReparsePoint([string]$path) {
2
+ $file = Get-Item $path -Force -ea 0
3
+ return [bool]($file.Attributes -band [IO.FileAttributes]::ReparsePoint)
4
+ }
5
+
6
+ $MountPoint = [System.IO.Path]::GetFullPath("<%= options[:mount_point] %>")
7
+ $ShareName = "<%= options[:share_name] %>"
8
+ $VmProviderUncPath = "<%= options[:vm_provider_unc_path] %>"
9
+
10
+ # https://github.com/BIAINC/vagrant-windows/issues/4
11
+ # Not sure why this works, but it does.
12
+
13
+ & net use $ShareName 2>&1 | Out-Null
14
+
15
+ Write-Output "Attempting to mount $ShareName to $MountPoint"
16
+ if( (Test-Path "$MountPoint") -and (Test-ReparsePoint "$MountPoint") )
17
+ {
18
+ Write-Output "Junction already exists, so I will delete it"
19
+ # Powershell refuses to delete junctions, oh well use cmd
20
+ cmd /c rd "$MountPoint"
21
+
22
+ if ( $LASTEXITCODE -ne 0 )
23
+ {
24
+ Write-Error "Failed to delete symbolic link at $MountPoint"
25
+ exit 1
26
+ }
27
+
28
+ }
29
+ elseif(Test-Path $MountPoint)
30
+ {
31
+ Write-Output "Mount point already exists and is not a symbolic link"
32
+ exit 1
33
+ }
34
+
35
+ $BaseDirectory = [System.IO.Path]::GetDirectoryName($MountPoint)
36
+
37
+ if (-not (Test-Path $BaseDirectory))
38
+ {
39
+ Write-Output "Creating parent directory for mount point $BaseDirectory"
40
+ New-Item $BaseDirectory -Type Directory -Force | Out-Null
41
+ }
42
+
43
+ & cmd.exe /c mklink /D "$MountPoint" "$VmProviderUncPath" | out-null
44
+
45
+ if ( $LASTEXITCODE -ne 0 )
46
+ {
47
+ exit 1
48
+ }
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module GuestMSYS2
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -14,37 +14,9 @@ Gem::Specification.new do |s|
14
14
  s.description = "Adds MSYS2 (https://sourceforge.net/p/msys2/wiki/Home/) as a guest for Vagrant. "
15
15
  s.homepage = "https://github.com/tsmolka/vagrant-guest-msys2"
16
16
  s.required_rubygems_version = ">= 1.3.6"
17
-
18
- # Note that the entire gitignore(5) syntax is not supported, specifically
19
- # the "!" syntax, but it should mostly work correctly.
20
- root_path = File.dirname(__FILE__)
21
- all_files = Dir.chdir(root_path) { Dir.glob("**/{*,.*}") }
22
- all_files.reject! { |file| [".", ".."].include?(File.basename(file)) }
23
- gitignore_path = File.join(root_path, ".gitignore")
24
- gitignore = File.readlines(gitignore_path)
25
- gitignore.map! { |line| line.chomp.strip }
26
- gitignore.reject! { |line| line.empty? || line =~ /^(#|!)/ }
27
-
28
- unignored_files = all_files.reject do |file|
29
- # Ignore any directories, the gemspec only cares about files
30
- next true if File.directory?(file)
31
-
32
- # Ignore any paths that match anything in the gitignore. We do
33
- # two tests here:
34
- #
35
- # - First, test to see if the entire path matches the gitignore.
36
- # - Second, match if the basename does, this makes it so that things
37
- # like '.DS_Store' will match sub-directories too (same behavior
38
- # as git).
39
- #
40
- gitignore.any? do |ignore|
41
- File.fnmatch(ignore, file, File::FNM_PATHNAME) ||
42
- File.fnmatch(ignore, File.basename(file), File::FNM_PATHNAME)
43
- end
44
- end
45
-
46
- s.files = unignored_files
47
- s.executables = unignored_files.map { |f| f[/^bin\/(.*)/, 1] }.compact
17
+ root_path = File.dirname(__FILE__)
18
+
19
+ s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
48
20
  s.require_path = 'lib'
49
21
  end
50
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-guest-msys2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-11-03 00:00:00.000000000 Z
12
+ date: 2017-03-09 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: 'Adds MSYS2 (https://sourceforge.net/p/msys2/wiki/Home/) as a guest for
15
15
  Vagrant. '
@@ -18,30 +18,32 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - ".gitignore"
22
+ - ".travis.yml"
23
+ - CHANGELOG.md
24
+ - Gemfile
25
+ - LICENSE
26
+ - README.md
27
+ - Rakefile
21
28
  - lib/vagrant-guest-msys2.rb
22
- - lib/vagrant-guest-msys2/plugin.rb
23
29
  - lib/vagrant-guest-msys2/cap/change_host_name.rb
24
30
  - lib/vagrant-guest-msys2/cap/choose_addressable_ip_addr.rb
25
- - lib/vagrant-guest-msys2/cap/powershell.rb
26
- - lib/vagrant-guest-msys2/cap/remove_public_key.rb
27
- - lib/vagrant-guest-msys2/cap/halt.rb
28
31
  - lib/vagrant-guest-msys2/cap/configure_networks.rb
32
+ - lib/vagrant-guest-msys2/cap/halt.rb
33
+ - lib/vagrant-guest-msys2/cap/insert_public_key.rb
34
+ - lib/vagrant-guest-msys2/cap/mount_shared_folder.rb
29
35
  - lib/vagrant-guest-msys2/cap/reboot.rb
36
+ - lib/vagrant-guest-msys2/cap/remove_public_key.rb
30
37
  - lib/vagrant-guest-msys2/cap/rsync.rb
31
- - lib/vagrant-guest-msys2/cap/insert_public_key.rb
32
- - lib/vagrant-guest-msys2/util/cap_helpers.rb
33
- - lib/vagrant-guest-msys2/guest_network.rb
34
- - lib/vagrant-guest-msys2/version.rb
35
38
  - lib/vagrant-guest-msys2/errors.rb
36
39
  - lib/vagrant-guest-msys2/guest.rb
37
- - Rakefile
38
- - CHANGELOG.md
39
- - vagrant-guest-msys2.gemspec
40
- - Gemfile
41
- - README.md
42
- - LICENSE
40
+ - lib/vagrant-guest-msys2/guest_network.rb
41
+ - lib/vagrant-guest-msys2/plugin.rb
42
+ - lib/vagrant-guest-msys2/scripts/mount_volume.ps1.erb
43
+ - lib/vagrant-guest-msys2/util/cap_helpers.rb
44
+ - lib/vagrant-guest-msys2/version.rb
43
45
  - locales/en.yml
44
- - .gitignore
46
+ - vagrant-guest-msys2.gemspec
45
47
  homepage: https://github.com/tsmolka/vagrant-guest-msys2
46
48
  licenses:
47
49
  - GPL-2.0
@@ -52,17 +54,17 @@ require_paths:
52
54
  - lib
53
55
  required_ruby_version: !ruby/object:Gem::Requirement
54
56
  requirements:
55
- - - '>='
57
+ - - ">="
56
58
  - !ruby/object:Gem::Version
57
59
  version: '0'
58
60
  required_rubygems_version: !ruby/object:Gem::Requirement
59
61
  requirements:
60
- - - '>='
62
+ - - ">="
61
63
  - !ruby/object:Gem::Version
62
64
  version: 1.3.6
63
65
  requirements: []
64
66
  rubyforge_project:
65
- rubygems_version: 2.0.14.1
67
+ rubygems_version: 2.6.10
66
68
  signing_key:
67
69
  specification_version: 4
68
70
  summary: MSYS2 guest for Vagrant
@@ -1,59 +0,0 @@
1
- module VagrantPlugins
2
- module GuestMSYS2
3
- module Cap
4
- class Powershell
5
- def self.powershell_installed(machine)
6
- machine.communicate.test('which powershell')
7
- end
8
-
9
- def self.powershell_install(machine)
10
- machine.ui.info I18n.t("vagrant-guest-msys2.info.run_powershell_install")
11
- script = <<-EOH.gsub(/^ {12}/, '')
12
- set -e
13
- OS_VERSION=`echo '' | wmic os get version | grep -o '^[0-9]*\\.[0-9]*'`
14
- OS_ARCH=`regtool -l get '\\HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment\\PROCESSOR_ARCHITECTURE' | tr '[:upper:]' '[:lower:]'`
15
-
16
- if [ "$OS_VERSION" = "5.1" -a "$OS_ARCH" = "x86" ]; then # Windows XP 32-bit
17
- pacman -S --noconfirm wget
18
-
19
- if ! (regtool -l get '\\HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727\\SP' | grep -q "1"); then
20
- wget --no-verbose --no-check-certificate "https://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe" -O "/tmp/NetFx20SP1_x86.exe"
21
- /tmp/NetFx20SP1_x86.exe //passive //norestart
22
- rm /tmp/NetFx20SP1_x86.exe
23
- fi
24
-
25
- if ! (regtool -l get '\\HKLM\\SOFTWARE\\Microsoft\\PowerShell\\1\\PowerShellEngine\\PowerShellVersion' | grep -q "2\\.0"); then
26
- wget --no-verbose --no-check-certificate "https://download.microsoft.com/download/E/C/E/ECE99583-2003-455D-B681-68DB610B44A4/WindowsXP-KB968930-x86-ENG.exe" -O "/tmp/WindowsXP-KB968930-x86-ENG.exe"
27
- /tmp/WindowsXP-KB968930-x86-ENG.exe //passive //norestart
28
- rm /tmp/WindowsXP-KB968930-x86-ENG.exe
29
- fi
30
- else
31
- (>&2 echo Unsupported OS $OS_VERSION $OS_ARCH)
32
- fi
33
-
34
- if [ -f "c:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -a ! -f /bin/powershell ]; then
35
- echo '#!/bin/sh'$'\\n''"c:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -inputformat none $@' > /bin/powershell
36
- chmod 755 /bin/powershell
37
- fi
38
-
39
- which powershell
40
- EOH
41
- machine.communicate.execute(script)
42
- end
43
-
44
- def self.powershell_check(machine)
45
- if machine.guest.capability?(:powershell_installed)
46
- installed = machine.guest.capability(:powershell_installed)
47
- if !installed
48
- if machine.guest.capability?(:powershell_install)
49
- machine.guest.capability(:powershell_install)
50
- end
51
- installed = machine.guest.capability(:powershell_installed)
52
- raise Errors::PowershellNotInstalledInGuest if !installed
53
- end
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end