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 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