vagrant-phpstorm-tunnel 0.1.8 → 0.1.9

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/data/php +54 -45
  3. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f51f152562f305e26ae6ff6ff2541508dfe9b7e3
4
- data.tar.gz: 926845a0929f66ec51d3fed87f9222e5e72885bb
3
+ metadata.gz: 9903f4dc20f8395f96d1c3017f4ec0bc1e41dd10
4
+ data.tar.gz: 8f83694594116a771fdb66a438618216d5e25d8d
5
5
  SHA512:
6
- metadata.gz: e1e902d86093c85e69d7f23fca97306a812a0f1c5ea3c72bc334b053779104df5f78bd0c3f2e0f045011842d00106d5e7940008c90616964e8a37f9e26e72864
7
- data.tar.gz: ddbd456f1c2ef6175348c822395148a15c508ab78733487a00b403a9cb4a8f794b1f45661d7f20868d5f7114f34c10d4d3e58760d588d1d75ae3b9444ca0919e
6
+ metadata.gz: 1ce622ef060da5d40c1eaa3c86ecb4f59e6ae2aa9cdea2f15debe0cd55fa5594d0f98c4abe3c1dfeee85d9cccdc7bbfa0fdc7c1ac6aed8f5c71f5acc104f9ebb
7
+ data.tar.gz: 117a4345f00be04e7f4cbfba35692822a15be72454201079c6e2000c38f09f816d98f558c84e12210e3435a272aaa00905207029fb21a43bcb25bad521250658
data/data/php CHANGED
@@ -12,25 +12,57 @@ chdir($projectDirHost);
12
12
  // Detect Host IP
13
13
  $hostIpFile = $homeDirHost . '/host_ip';
14
14
  if (!file_exists($hostIpFile)) {
15
- $ip = shell_exec('vagrant ssh -c "sudo ip route | awk \'/default/ { print \$3; exit; }\'"');
16
- file_put_contents($hostIpFile, $ip);
15
+ $ip = shell_exec('vagrant ssh -c "sudo ip route | awk \'/default/ { print \$3; exit; }\'"');
16
+ file_put_contents($hostIpFile, $ip);
17
17
  }
18
18
  $hostIp = trim(file_get_contents($hostIpFile));
19
19
  if (!filter_var($hostIp, FILTER_VALIDATE_IP)) {
20
- throw new Exception('Cannot detect host IP, got value `' . $hostIp . '`.');
20
+ throw new Exception('Cannot detect host IP, got value `' . $hostIp . '`.');
21
21
  }
22
22
 
23
23
  // Detect Project Dir on Guest
24
24
  $projectDirGuestFile = $homeDirHost . '/vm_project_dir';
25
25
  if (file_exists($projectDirGuestFile)) {
26
- $projectDirGuest = trim(file_get_contents($projectDirGuestFile));
26
+ $projectDirGuest = trim(file_get_contents($projectDirGuestFile));
27
27
  }
28
28
  $homeDirGuest = $projectDirGuest . '/.idea/vagrant';
29
29
 
30
+ $applyMapping = function ($argument) use ($projectDirHost, $projectDirGuest, $homeDirHost, $homeDirGuest, $hostIp) {
31
+ // IP mapping
32
+ $argument = str_replace(array('127.0.0.1', 'localhost'), $hostIp, $argument);
33
+
34
+ // Paths mapping
35
+ $filePath = $argument;
36
+ if (strrpos($filePath, '.coverage') == strlen($filePath) - 9) {
37
+ // Mapping output files to remote paths
38
+ if (!is_dir($homeDirHost . '/output/')) {
39
+ mkdir($homeDirHost . '/output/', 0777, true);
40
+ }
41
+ $argument = $homeDirGuest . '/output/' . basename($filePath);
42
+ $coverageFileList[$filePath] = $homeDirHost . '/output/' . basename($filePath);
43
+ } elseif (file_exists($filePath)) {
44
+ if (strpos($filePath, $projectDirHost) !== false) {
45
+ // Mapping project paths to remote paths
46
+ $argument = str_replace($projectDirHost, $projectDirGuest, $filePath);
47
+ } else {
48
+ // Mapping any other local system paths to remote paths, upload files
49
+ if (!is_dir($homeDirHost . '/scripts/')) {
50
+ mkdir($homeDirHost . '/scripts/', 0777, true);
51
+ }
52
+ if (is_file($filePath)) {
53
+ copy($filePath, $homeDirHost . '/scripts/' . basename($filePath));
54
+ }
55
+ $argument = $homeDirGuest . '/scripts/' . basename($filePath);
56
+ }
57
+ }
58
+
59
+ return escapeshellarg($argument);
60
+ };
61
+
30
62
  // Detect Command Prefix
31
63
  $commandPrefixFile = $homeDirHost . '/vm_command_prefix';
32
64
  if (file_exists($commandPrefixFile)) {
33
- $commandPrefix = trim(file_get_contents($commandPrefixFile));
65
+ $commandPrefix = trim(file_get_contents($commandPrefixFile));
34
66
  }
35
67
 
36
68
  $coverageFileList = array();
@@ -38,53 +70,30 @@ $coverageFileList = array();
38
70
  $arguments = $argv;
39
71
  array_shift($arguments);
40
72
  foreach ($arguments as $index => &$argument) {
41
- // IP mapping
42
- $argument = str_replace(array('127.0.0.1', 'localhost'), $hostIp, $argument);
43
-
44
- // Paths mapping
45
- $filePath = $argument;
46
- if (strrpos($filePath, '.coverage') == strlen($filePath) - 9) {
47
- // Mapping output files to remote paths
48
- if(!is_dir($homeDirHost . '/output/')) {
49
- mkdir($homeDirHost . '/output/', 0777, true);
50
- }
51
- $argument = $homeDirGuest . '/output/' . basename($filePath);
52
- $coverageFileList[$filePath] = $homeDirHost . '/output/' . basename($filePath);
53
- } elseif (file_exists($filePath)) {
54
- if (strpos($filePath, $projectDirHost) !== false) {
55
- // Mapping project paths to remote paths
56
- $argument = str_replace($projectDirHost, $projectDirGuest, $filePath);
57
- } else {
58
- // Mapping any other local system paths to remote paths, upload files
59
- if(!is_dir($homeDirHost . '/scripts/')) {
60
- mkdir($homeDirHost . '/scripts/', 0777, true);
61
- }
62
- copy($filePath, $homeDirHost . '/scripts/' . basename($filePath));
63
- $argument = $homeDirGuest . '/scripts/' . basename($filePath);
64
- }
65
- }
66
-
67
- $argument = escapeshellarg($argument);
73
+ $argument = $applyMapping($argument);
68
74
  }
69
75
 
70
- // Get XDEBUG environment variable
71
- $env = '';
72
- if (isset($_SERVER['XDEBUG_CONFIG'])) {
73
- $env = "XDEBUG_CONFIG='" . $_SERVER['XDEBUG_CONFIG'] . "'";
76
+ // Get allowed environment variables
77
+ $allowedEnv = array('XDEBUG_CONFIG', 'IDE_PHPUNIT_CUSTOM_LOADER', 'IDE_PHPUNIT_PHPUNIT_PHAR', 'IDE_PHPUNIT_PHPUNIT_INCLUDE');
78
+ $env = array();
79
+ foreach ($_SERVER as $name => $value) {
80
+ if (in_array($name, $allowedEnv)) {
81
+ $env[] = $name . '=' . $applyMapping($value);
82
+ }
74
83
  }
75
84
 
76
85
  $includePaths = array('.', $projectDirGuest . '/vendor/phpunit/phpunit');
77
86
  $arguments = array_merge(array('-d', 'include_path=' . implode(':', $includePaths)), $arguments);
78
87
 
79
- passthru($pipe . escapeshellarg($commandPrefix. ' ' . $env . ' php ' . implode(' ', $arguments)));
88
+ passthru($pipe . escapeshellarg($commandPrefix. ' ' . implode(' ', $env) . ' php ' . implode(' ', $arguments)));
80
89
 
81
90
  // Copy output files to their location, adapt paths
82
- foreach($coverageFileList as $filePath => $hostPath) {
83
- if (!file_exists($hostPath)) {
84
- @unlink($filePath);
85
- } else {
86
- $contents = file_get_contents($hostPath);
87
- $contents = str_replace($projectDirGuest, $projectDirHost, $contents);
88
- file_put_contents($filePath, $contents);
89
- }
91
+ foreach ($coverageFileList as $filePath => $hostPath) {
92
+ if (!file_exists($hostPath)) {
93
+ @unlink($filePath);
94
+ } else {
95
+ $contents = file_get_contents($hostPath);
96
+ $contents = str_replace($projectDirGuest, $projectDirHost, $contents);
97
+ file_put_contents($filePath, $contents);
98
+ }
90
99
  }
metadata CHANGED
@@ -1,17 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-phpstorm-tunnel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cargo Media
8
8
  - kris-lab
9
9
  - njam
10
10
  - fauvel
11
+ - alexispeter
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2014-04-09 00:00:00.000000000 Z
15
+ date: 2014-07-02 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: rake
@@ -60,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
61
  version: '0'
61
62
  requirements: []
62
63
  rubyforge_project:
63
- rubygems_version: 2.2.2
64
+ rubygems_version: 2.3.0
64
65
  signing_key:
65
66
  specification_version: 4
66
67
  summary: Proxy php-calls from PhpStorm to Vagrant