rb2exe 0.1.47 → 0.1.49
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -5
- data/bin/build +2 -1
- data/bin/rb2exe +23 -17
- data/bin/traveling-ruby-2.2.2/test-rake +1 -0
- data/lib/rb2exe/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 228617d28fb7b751b1200c5e088b80c4714b2c49
|
4
|
+
data.tar.gz: e27c3823553721eb252c9b1d1881cab4e646b6cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce2c78c045c2aa6e90b897496fbe522bee0c2b28c1e1690b65e484514bedea1ce26041588ce0602892e07a58b14ec2bdf995d4901e935694618cfd0e230586b5
|
7
|
+
data.tar.gz: addd64f8fdfe721ad63e86fc313d8f989c795c523a15d088a57fc4035c9c3d427cad5f877da5dfbf46404ccb0deaef3f8fb3c86f0c136420767fc2dd6bf29bb4
|
data/README.md
CHANGED
@@ -11,8 +11,7 @@ gem install rb2exe
|
|
11
11
|
## Usage
|
12
12
|
|
13
13
|
```bash
|
14
|
-
rb2exe
|
15
|
-
rb2exe . test.rb test.sh
|
14
|
+
rb2exe script.rb <optional folder to include> <optional output filename>
|
16
15
|
```
|
17
16
|
|
18
17
|
## Usage Example:
|
@@ -20,10 +19,18 @@ rb2exe . test.rb test.sh
|
|
20
19
|
mkdir test
|
21
20
|
cd test
|
22
21
|
echo "puts 'Hello world'" > test.rb
|
23
|
-
rb2exe
|
24
|
-
./test
|
22
|
+
rb2exe test.rb
|
23
|
+
./test
|
25
24
|
```
|
26
25
|
|
26
|
+
## Security
|
27
|
+
|
28
|
+
rb2exe DOESN'T protects your source code.
|
29
|
+
|
30
|
+
In fact, the produced executable file contains all your source files and THEY CAN BE EASILY EXTRACTED.
|
31
|
+
|
32
|
+
rb2exe just packages your source files (plus a stand-alone ruby) in an auto-extract zip file. It doesn't protects your code in any way.
|
33
|
+
|
27
34
|
## Contributing
|
28
35
|
|
29
36
|
Bug reports and pull requests are welcome on GitHub at https://github.com/loureirorg/rb2exe.
|
@@ -31,4 +38,7 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/lourei
|
|
31
38
|
## TODO
|
32
39
|
|
33
40
|
* Allow ruby versions other than 2.2.2;
|
34
|
-
*
|
41
|
+
* Rails support;
|
42
|
+
* Gemfile support;
|
43
|
+
* Windows / OSX executable output;
|
44
|
+
* Testing suite;
|
data/bin/build
CHANGED
data/bin/rb2exe
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
# Usage:
|
4
|
-
# rb2exe <app
|
5
|
-
# Eg: rb2exe
|
4
|
+
# rb2exe <app main file> <optional app directory> <optional output filename>
|
5
|
+
# Eg: rb2exe test.rb . exe_output
|
6
6
|
#
|
7
|
-
# WARNING: the entire <app directory> will be packed
|
8
7
|
require "tmpdir"
|
9
8
|
|
10
9
|
def blank?(arg)
|
@@ -14,24 +13,25 @@ end
|
|
14
13
|
# Gem path
|
15
14
|
gem_dir = File.expand_path(File.dirname(__FILE__) + "/..")
|
16
15
|
|
16
|
+
# Main ruby app (filename)
|
17
|
+
main_app_path = ARGV[0]
|
18
|
+
abort("You need to specify a ruby file.") if blank?(main_app_path)
|
19
|
+
abort("#{ARGV[0]} doesn't exist.") if ! File.exists?(ARGV[0])
|
20
|
+
|
17
21
|
# App directory
|
18
22
|
pwd = Dir.pwd
|
19
|
-
|
20
|
-
app_dir =
|
21
|
-
if ! Dir.exists?(app_dir)
|
22
|
-
abort "Directory #{app_dir} doesn't exist."
|
23
|
+
if blank?(ARGV[1])
|
24
|
+
app_dir = nil
|
23
25
|
else
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
# Main ruby app (filename)
|
28
|
-
main_app_path = ARGV[1]
|
29
|
-
if blank?(main_app_path)
|
30
|
-
abort("You need to specify a ruby file.")
|
26
|
+
app_dir = File.expand_path(ARGV[1])
|
27
|
+
abort "Directory #{app_dir} doesn't exist." if ! Dir.exists?(app_dir)
|
31
28
|
end
|
32
29
|
|
33
30
|
# Executable filename
|
34
|
-
|
31
|
+
# If not specified, uses the main app filename without its extension. Eg.:
|
32
|
+
# script.rb -> script
|
33
|
+
exe_fn = blank?(ARGV[2]) ? File.basename(ARGV[0], File.extname(ARGV[0])) : ARGV[2]
|
34
|
+
abort("Can't use '#{exe_fn}' as a filename (there's a folder with this name).") if Dir.exists?("#{pwd}/#{exe_fn}")
|
35
35
|
|
36
36
|
# Ruby version should be 2.2.2, 64 bits:
|
37
37
|
version = `echo $RUBY_VERSION`.strip
|
@@ -44,11 +44,17 @@ result = "Error"
|
|
44
44
|
Dir.mktmpdir do |tmp_dir|
|
45
45
|
FileUtils.mkdir_p("#{tmp_dir}/payload/lib")
|
46
46
|
FileUtils.cp_r("#{gem_dir}/bin/traveling-ruby-2.2.2", "#{tmp_dir}/payload/lib/ruby") # Copy ruby traveler 2.2.2 on "payload/lib/ruby"
|
47
|
-
|
47
|
+
# Move the "app" folder to "payload/lib"
|
48
|
+
if app_dir.nil?
|
49
|
+
FileUtils.mkdir_p("#{tmp_dir}/payload/lib/app/")
|
50
|
+
FileUtils.cp_r(main_app_path, "#{tmp_dir}/payload/lib/app/")
|
51
|
+
else
|
52
|
+
FileUtils.cp_r(app_dir, "#{tmp_dir}/payload/lib/app")
|
53
|
+
end
|
48
54
|
FileUtils.cp_r("#{gem_dir}/bin/installer", "#{tmp_dir}/payload/") # Create a wrapper script (name it as "installer")
|
49
55
|
FileUtils.cp_r("#{gem_dir}/bin/build", "#{tmp_dir}/") # Package builder
|
50
56
|
FileUtils.cp_r("#{gem_dir}/bin/decompress", "#{tmp_dir}/")
|
51
57
|
result = `#{tmp_dir}/build #{tmp_dir} #{main_app_path} #{exe_fn}`
|
52
|
-
FileUtils.mv("#{tmp_dir}/output",
|
58
|
+
FileUtils.mv("#{tmp_dir}/output", "#{pwd}/#{exe_fn}") # Output
|
53
59
|
end
|
54
60
|
print result
|
@@ -0,0 +1 @@
|
|
1
|
+
/home/daniel/projects/test-rake
|
data/lib/rb2exe/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rb2exe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.49
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Loureiro
|
@@ -1049,6 +1049,7 @@ files:
|
|
1049
1049
|
- bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/psych-2.0.8.gemspec
|
1050
1050
|
- bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/rake-10.4.2.gemspec
|
1051
1051
|
- bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/rdoc-4.2.0.gemspec
|
1052
|
+
- bin/traveling-ruby-2.2.2/test-rake
|
1052
1053
|
- lib/rb2exe.rb
|
1053
1054
|
- lib/rb2exe/version.rb
|
1054
1055
|
- rb2exe.gemspec
|
@@ -1071,7 +1072,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1071
1072
|
version: '0'
|
1072
1073
|
requirements: []
|
1073
1074
|
rubyforge_project:
|
1074
|
-
rubygems_version: 2.
|
1075
|
+
rubygems_version: 2.5.1
|
1075
1076
|
signing_key:
|
1076
1077
|
specification_version: 4
|
1077
1078
|
summary: Ruby to Executable
|