echinoidea 0.0.5 → 0.0.6
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.
- data/README.md +12 -0
 - data/bin/echinoidea +6 -1
 - data/lib/echinoidea/builder.rb +32 -6
 - data/lib/echinoidea/version.rb +1 -1
 - metadata +2 -2
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -26,6 +26,18 @@ Then run `echinoidea`. 
     | 
|
| 
       26 
26 
     | 
    
         
             
            echinoidea -o [OUTPUT_DIRECTORY]
         
     | 
| 
       27 
27 
     | 
    
         
             
            ```
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
            `-t Android` for Android project
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            ```
         
     | 
| 
      
 32 
     | 
    
         
            +
            echinoidea -o [OUTPUT_DIRECTORY] -t Android
         
     | 
| 
      
 33 
     | 
    
         
            +
            ```
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            To enable loggings, use `-l` option
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            ```
         
     | 
| 
      
 38 
     | 
    
         
            +
            echinoidea -o [OUTPUT_DIRECTORY] -l
         
     | 
| 
      
 39 
     | 
    
         
            +
            ```
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
       29 
41 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       30 
42 
     | 
    
         | 
| 
       31 
43 
     | 
    
         
             
            1. Fork it
         
     | 
    
        data/bin/echinoidea
    CHANGED
    
    | 
         @@ -8,6 +8,7 @@ opt = OptionParser.new 
     | 
|
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            OPTS = {}
         
     | 
| 
       10 
10 
     | 
    
         
             
            opt.on('-d') {|v| OPTS[:d] = v}
         
     | 
| 
      
 11 
     | 
    
         
            +
            opt.on('-l') {|v| OPTS[:l] = v}
         
     | 
| 
       11 
12 
     | 
    
         
             
            opt.on('-o VAL') {|v| OPTS[:o] = v }
         
     | 
| 
       12 
13 
     | 
    
         
             
            opt.on('-t VAL') {|v| OPTS[:t] = v }
         
     | 
| 
       13 
14 
     | 
    
         
             
            opt.parse!(ARGV)
         
     | 
| 
         @@ -17,6 +18,10 @@ if OPTS[:o] == nil || OPTS[:o] == "" 
     | 
|
| 
       17 
18 
     | 
    
         
             
              exit
         
     | 
| 
       18 
19 
     | 
    
         
             
            end
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
            if OPTS[:l]
         
     | 
| 
      
 22 
     | 
    
         
            +
              puts "Options: " + OPTS.to_s
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       20 
25 
     | 
    
         
             
            current_dir = Dir::pwd
         
     | 
| 
       21 
26 
     | 
    
         | 
| 
       22 
27 
     | 
    
         
             
            if !Echinoidea::project_root_directory?(current_dir)
         
     | 
| 
         @@ -36,7 +41,7 @@ end 
     | 
|
| 
       36 
41 
     | 
    
         
             
            # load config
         
     | 
| 
       37 
42 
     | 
    
         
             
            config = YAML.load_file([current_dir, "echinoidea.yml"].join("/"))
         
     | 
| 
       38 
43 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
            builder = Echinoidea::Builder.new(current_dir, config)
         
     | 
| 
      
 44 
     | 
    
         
            +
            builder = Echinoidea::Builder.new(current_dir, config, OPTS[:l])
         
     | 
| 
       40 
45 
     | 
    
         
             
            builder.output_directory = OPTS[:o]
         
     | 
| 
       41 
46 
     | 
    
         
             
            builder.build_target = OPTS[:t] if OPTS[:t]
         
     | 
| 
       42 
47 
     | 
    
         
             
            builder.debug_mode = true if OPTS[:d]
         
     | 
    
        data/lib/echinoidea/builder.rb
    CHANGED
    
    | 
         @@ -2,25 +2,35 @@ require 'echinoidea/version' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            class Echinoidea::Builder
         
     | 
| 
       4 
4 
     | 
    
         
             
              attr_reader :class_name, :config, :file_path
         
     | 
| 
       5 
     | 
    
         
            -
              attr_accessor :build_target, :debug_mode, :output_directory, :scenes
         
     | 
| 
      
 5 
     | 
    
         
            +
              attr_accessor :build_target, :debug_mode, :loggings_enabled, :output_directory, :scenes
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              def log(message)
         
     | 
| 
      
 8 
     | 
    
         
            +
                puts message if @loggings_enabled
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
       6 
10 
     | 
    
         | 
| 
       7 
11 
     | 
    
         
             
              def self.unique_builder_class_name
         
     | 
| 
       8 
12 
     | 
    
         
             
              	"ECBuilder#{Time.now.strftime('%y%m%d%H%M%S')}"
         
     | 
| 
       9 
13 
     | 
    
         
             
              end
         
     | 
| 
       10 
14 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
              def initialize(root_directory, config)
         
     | 
| 
      
 15 
     | 
    
         
            +
              def initialize(root_directory, config, loggings_enabled = false)
         
     | 
| 
       12 
16 
     | 
    
         
             
                @class_name = self.class.unique_builder_class_name
         
     | 
| 
       13 
17 
     | 
    
         
             
                @root_directory = root_directory
         
     | 
| 
       14 
18 
     | 
    
         
             
                @config = config
         
     | 
| 
       15 
19 
     | 
    
         
             
                @build_target = "iPhone" # Default build target
         
     | 
| 
       16 
20 
     | 
    
         
             
                @debug_mode = false
         
     | 
| 
      
 21 
     | 
    
         
            +
                @loggings_enabled = true if loggings_enabled == true
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                log "Initializing builder"
         
     | 
| 
      
 24 
     | 
    
         
            +
                log "  root_directory: #{root_directory}"
         
     | 
| 
      
 25 
     | 
    
         
            +
                log "  config: #{config}"
         
     | 
| 
       17 
26 
     | 
    
         
             
              end
         
     | 
| 
       18 
27 
     | 
    
         | 
| 
       19 
28 
     | 
    
         
             
              def file_path
         
     | 
| 
       20 
     | 
    
         
            -
                [@root_directory, "Assets", "Editor", "#{@class_name}.cs"].join("/")
         
     | 
| 
      
 29 
     | 
    
         
            +
                [@root_directory, "Assets", "Editor", "#{@class_name}.cs"].join("/").gsub(" ", " ")
         
     | 
| 
       21 
30 
     | 
    
         
             
              end
         
     | 
| 
       22 
31 
     | 
    
         | 
| 
       23 
32 
     | 
    
         
             
              def write_to_file
         
     | 
| 
      
 33 
     | 
    
         
            +
                log "Write a batch build script to: #{self.file_path}"
         
     | 
| 
       24 
34 
     | 
    
         
             
                # Thanks to: http://ameblo.jp/principia-ca/entry-11010391965.html
         
     | 
| 
       25 
35 
     | 
    
         
             
                File.open(self.file_path,'w'){|f|
         
     | 
| 
       26 
36 
     | 
    
         
             
                  scenes = @config['scenes'].map{|scene| "\"#{scene}\""}.join(",")
         
     | 
| 
         @@ -41,6 +51,14 @@ class Echinoidea::Builder 
     | 
|
| 
       41 
51 
     | 
    
         | 
| 
       42 
52 
     | 
    
         
             
                  player_settings_opts_string = player_settings_opts.map{|k,v| "PlayerSettings.#{k} = #{v};"}.join("\n")
         
     | 
| 
       43 
53 
     | 
    
         | 
| 
      
 54 
     | 
    
         
            +
                  build_opts = @build_target == "iPhone" ? "SymlinkLibraries" : "None"
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                  log "  class_name: #{@class_name}"
         
     | 
| 
      
 57 
     | 
    
         
            +
                  log "  build_opts: #{build_opts}"
         
     | 
| 
      
 58 
     | 
    
         
            +
                  log "  scenes: #{scenes}"
         
     | 
| 
      
 59 
     | 
    
         
            +
                  log "  output_directory: #{output_directory}"
         
     | 
| 
      
 60 
     | 
    
         
            +
                  log "  build_target: #{@build_target}"
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       44 
62 
     | 
    
         
             
                  f.write "using UnityEngine;
         
     | 
| 
       45 
63 
     | 
    
         
             
            using UnityEditor;
         
     | 
| 
       46 
64 
     | 
    
         
             
            using System.Collections;
         
     | 
| 
         @@ -49,7 +67,7 @@ public class #{@class_name} 
     | 
|
| 
       49 
67 
     | 
    
         
             
              public static void Build()
         
     | 
| 
       50 
68 
     | 
    
         
             
              {
         
     | 
| 
       51 
69 
     | 
    
         
             
                #{player_settings_opts_string}
         
     | 
| 
       52 
     | 
    
         
            -
                BuildOptions opt = BuildOptions 
     | 
| 
      
 70 
     | 
    
         
            +
                BuildOptions opt = BuildOptions.#{build_opts};
         
     | 
| 
       53 
71 
     | 
    
         | 
| 
       54 
72 
     | 
    
         
             
                string[] scenes = {#{scenes}};
         
     | 
| 
       55 
73 
     | 
    
         
             
                BuildPipeline.BuildPlayer(scenes, \"#{@output_directory}\", BuildTarget.#{@build_target}, opt);
         
     | 
| 
         @@ -60,12 +78,20 @@ public class #{@class_name} 
     | 
|
| 
       60 
78 
     | 
    
         
             
              end
         
     | 
| 
       61 
79 
     | 
    
         
             
              def remove_files
         
     | 
| 
       62 
80 
     | 
    
         
             
                File.delete(self.file_path)
         
     | 
| 
       63 
     | 
    
         
            -
                 
     | 
| 
      
 81 
     | 
    
         
            +
                begin
         
     | 
| 
      
 82 
     | 
    
         
            +
                  File.delete("#{self.file_path}.meta")
         
     | 
| 
      
 83 
     | 
    
         
            +
                rescue
         
     | 
| 
      
 84 
     | 
    
         
            +
                  puts "Failed to delete meta file. #{self.file_path}.meta"
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
       64 
86 
     | 
    
         
             
              end
         
     | 
| 
       65 
87 
     | 
    
         | 
| 
       66 
88 
     | 
    
         
             
              def run_unity_command
         
     | 
| 
       67 
89 
     | 
    
         
             
                opts = debug_mode ? "" : "-quit -batchMode"
         
     | 
| 
       68 
     | 
    
         
            -
                 
     | 
| 
      
 90 
     | 
    
         
            +
                project_path = @root_directory.gsub(" ", "\\ ")
         
     | 
| 
      
 91 
     | 
    
         
            +
                command = "/Applications/Unity/Unity.app/Contents/MacOS/Unity #{opts} -executeMethod #{@class_name}.Build -projectPath #{project_path}"
         
     | 
| 
      
 92 
     | 
    
         
            +
                log "Running unity.app..."
         
     | 
| 
      
 93 
     | 
    
         
            +
                log "  #{command}"
         
     | 
| 
      
 94 
     | 
    
         
            +
                `#{command}`
         
     | 
| 
       69 
95 
     | 
    
         
             
              end
         
     | 
| 
       70 
96 
     | 
    
         | 
| 
       71 
97 
     | 
    
         
             
              def run
         
     | 
    
        data/lib/echinoidea/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: echinoidea
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.6
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-11-14 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       14 
14 
     | 
    
         
             
            description: echinoidea is a command line unity project build helper.
         
     | 
| 
       15 
15 
     | 
    
         
             
            email:
         
     |