disclose 0.2.0 → 0.3.0
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 +4 -4
- data/README.md +7 -1
- data/exe/disclose +4 -2
- data/lib/disclose/c.rb +16 -4
- data/lib/disclose/version.rb +1 -1
- data/lib/disclose.rb +11 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1783cb307e31d458a3cd9d176725d5d8e910b6d
|
4
|
+
data.tar.gz: 91c81bba7524c9618b983ff1f5b988b804624e5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d58c8cfb041c8b6fe32d4cf2a601a1e70184e5757e5d64e4a54bc3d949e5e9a8bfcbb534b1be2d9f41e871949a4f9a514b7ac3e8b8a38c7bb598349a515c2cb
|
7
|
+
data.tar.gz: ea3be4f08ab247506ca95096761e41c8316ba06922932d7577017d2b7c5b6f35fbe7cce5950773ee3aa6e2dad7e44d3326ebbcc41e8a7bbf2c6dc0f18a29748b
|
data/README.md
CHANGED
@@ -2,13 +2,19 @@
|
|
2
2
|
|
3
3
|
Pack your Node.js project into an executable without recompiling Node.js.
|
4
4
|
|
5
|
+
[](https://badge.fury.io/rb/disclose)
|
6
|
+
[](https://travis-ci.org/pmq20/disclose)
|
7
|
+
[](https://codeclimate.com/github/pmq20/disclose)
|
8
|
+
[](https://codecov.io/github/pmq20/disclose?branch=master)
|
9
|
+
[](http://inch-ci.org/github/pmq20/disclose?branch=master)
|
10
|
+
|
5
11
|
## Installation
|
6
12
|
|
7
13
|
$ gem install disclose
|
8
14
|
|
9
15
|
## Usage
|
10
16
|
|
11
|
-
$ disclose
|
17
|
+
$ disclose [node_path] [project_path]
|
12
18
|
|
13
19
|
## Example
|
14
20
|
|
data/exe/disclose
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require "disclose"
|
4
|
+
|
3
5
|
unless 2 == ARGV.size
|
4
6
|
puts Disclose.usage
|
7
|
+
exit 1
|
5
8
|
end
|
6
9
|
|
7
|
-
instance = Disclose.new *ARGV
|
8
|
-
|
9
10
|
begin
|
11
|
+
instance = Disclose.new *ARGV
|
10
12
|
instance.run!
|
11
13
|
rescue Disclose::Error => e
|
12
14
|
STDERR.puts e.message
|
data/lib/disclose/c.rb
CHANGED
@@ -7,13 +7,15 @@ class Disclose
|
|
7
7
|
#include <stdlib.h>
|
8
8
|
#include <assert.h>
|
9
9
|
|
10
|
-
int main(){
|
11
|
-
char file[] = "/tmp/disclose.file.XXXXXX";
|
12
|
-
char dir[] = "/tmp/disclose.dir.XXXXXX";
|
10
|
+
int main(int argc, char const *argv[]) {
|
11
|
+
char file[] = "/tmp/disclose.file.XXXXXX";
|
12
|
+
char dir[] = "/tmp/disclose.dir.XXXXXX";
|
13
13
|
FILE *fp = NULL;
|
14
14
|
int ret = -1;
|
15
15
|
char cmd[256] = {0};
|
16
16
|
char arg[256] = {0};
|
17
|
+
char **argv2 = NULL;
|
18
|
+
int i, index;
|
17
19
|
|
18
20
|
mktemp(file);
|
19
21
|
mkdtemp(dir);
|
@@ -30,7 +32,17 @@ class Disclose
|
|
30
32
|
|
31
33
|
snprintf(cmd, 255, "%s/node", dir);
|
32
34
|
snprintf(arg, 255, "%s/#{name}", dir);
|
33
|
-
|
35
|
+
argv2 = malloc(sizeof(char*) * (argc + 10));
|
36
|
+
assert(argv2);
|
37
|
+
argv2[0] = cmd;
|
38
|
+
argv2[1] = arg;
|
39
|
+
index = 2;
|
40
|
+
for (i = 1; i < argc; ++i) {
|
41
|
+
argv2[index] = argv[i];
|
42
|
+
index += 1;
|
43
|
+
}
|
44
|
+
argv2[index] = NULL;
|
45
|
+
execv(cmd, argv2);
|
34
46
|
|
35
47
|
return 1;
|
36
48
|
}
|
data/lib/disclose/version.rb
CHANGED
data/lib/disclose.rb
CHANGED
@@ -2,10 +2,18 @@ require "disclose/version"
|
|
2
2
|
require "disclose/c"
|
3
3
|
require 'fileutils'
|
4
4
|
require 'shellwords'
|
5
|
+
require 'tmpdir'
|
5
6
|
require 'json'
|
6
7
|
|
7
8
|
class Disclose
|
8
9
|
class Error < RuntimeError; end
|
10
|
+
|
11
|
+
def self.usage
|
12
|
+
%q{
|
13
|
+
Usage: disclose [node_path] [project_path]
|
14
|
+
e.g. disclose /usr/local/bin/node /usr/local/lib/node_modules/coffee-script
|
15
|
+
}.strip
|
16
|
+
end
|
9
17
|
|
10
18
|
def initialize(node_path, project_path)
|
11
19
|
@node_path = node_path
|
@@ -16,13 +24,13 @@ class Disclose
|
|
16
24
|
|
17
25
|
def parse_binaries!
|
18
26
|
@package_path = File.join(@project_path, 'package.json')
|
19
|
-
raise "No package.json exist at #{@package_path}." unless File.exist?(@package_path)
|
27
|
+
raise Error, "No package.json exist at #{@package_path}." unless File.exist?(@package_path)
|
20
28
|
@package_json = JSON.parse File.read @package_path
|
21
29
|
@binaries = @package_json['bin']
|
22
30
|
if @binaries
|
23
31
|
STDERR.puts "Detected binaries: #{@binaries}"
|
24
32
|
else
|
25
|
-
raise "No Binaries detected inside #{@package_path}."
|
33
|
+
raise Error, "No Binaries detected inside #{@package_path}."
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
@@ -61,16 +69,12 @@ class Disclose
|
|
61
69
|
end
|
62
70
|
end
|
63
71
|
|
64
|
-
def usage
|
65
|
-
'Usage: disclose <node_path> <project_path>'
|
66
|
-
end
|
67
|
-
|
68
72
|
private
|
69
73
|
|
70
74
|
def exe(cmd)
|
71
75
|
STDERR.puts "$ #{cmd}"
|
72
76
|
STDERR.print `#{cmd}`
|
73
|
-
raise "#{cmd} failed!" unless $?.success?
|
77
|
+
raise Error, "#{cmd} failed!" unless $?.success?
|
74
78
|
end
|
75
79
|
|
76
80
|
def chdir(path)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: disclose
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The rugged tests are fragile
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|