rb2exe 0.1.47 → 0.1.49

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: 5d41fb8cd213d2b48d5f1f286f52ed66963ba3a0
4
- data.tar.gz: 9a6507a27d29174ed14b47f7ee382f178a3cb530
3
+ metadata.gz: 228617d28fb7b751b1200c5e088b80c4714b2c49
4
+ data.tar.gz: e27c3823553721eb252c9b1d1881cab4e646b6cc
5
5
  SHA512:
6
- metadata.gz: d6604a6f0a0701863a28c29901634e5d33413318c8b157cb781ca1222e92279f2aa4aab6dc441ac22b1860d8535912890f1b273371f37d37cbd303df2d39c4ac
7
- data.tar.gz: 413e30cbb2c58d3d0b33751e41460bbc3b9302233543fd6e49b3a74ff616fd4d82dd3dc31ed8ca6d2c03f9ee7618314a205b8ea3a10c0e2fa3d3457f3ff017ee
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 APP_WORKING_DIRECTORY APP_MAIN_FILE OUTPUT_FILE
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 . test.rb test.sh
24
- ./test.sh
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
- * Pack web applications;
41
+ * Rails support;
42
+ * Gemfile support;
43
+ * Windows / OSX executable output;
44
+ * Testing suite;
data/bin/build CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/bin/bash
2
2
  cd $1/payload
3
- echo "Adding files..."
3
+ echo "Adding files:"
4
4
  ls lib/app -1A
5
+ echo ""
5
6
  tar cf ../payload.tar ./*
6
7
  cd ..
7
8
 
data/bin/rb2exe CHANGED
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # Usage:
4
- # rb2exe <app directory> <app main file> <output>
5
- # Eg: rb2exe . test.rb test.sh
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
- app_dir = blank?(ARGV[0]) ? pwd : "#{pwd}/#{ARGV[0]}"
20
- app_dir = File.expand_path(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
- puts "Converting: #{app_dir}"
25
- end
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
- exe_fn = blank?(ARGV[2]) ? "output" : ARGV[2]
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
- FileUtils.cp_r(app_dir, "#{tmp_dir}/payload/lib/app") # Move the "app" folder to "payload/lib"
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", app_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
@@ -1,3 +1,3 @@
1
1
  module Rb2exe
2
- VERSION = "0.1.47"
2
+ VERSION = "0.1.49"
3
3
  end
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.47
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.4.8
1075
+ rubygems_version: 2.5.1
1075
1076
  signing_key:
1076
1077
  specification_version: 4
1077
1078
  summary: Ruby to Executable