u3d 1.0.9 → 1.0.10
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/.github_changelog_generator +1 -1
- data/CHANGELOG.md +21 -0
- data/Gemfile.lock +2 -1
- data/config/log_rules.json +1 -1
- data/lib/u3d/commands.rb +6 -3
- data/lib/u3d/installation.rb +36 -26
- data/lib/u3d/log_analyzer.rb +1 -1
- data/lib/u3d/utils.rb +14 -7
- data/lib/u3d/version.rb +1 -1
- 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: 199952a8dafdb71e6f683bee1f99524fdf9fb4b1
|
4
|
+
data.tar.gz: fec612515c47bff5cac69eaeb6b02690f15d91ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 659ef44c9f876b8f20f7b7cf9deeb53fbde68b404e150483b547ecbeb0ecfc9783405e249531f123a4f4b1a02cee4a272b92b644e358dae7bfe6217ed57878c9
|
7
|
+
data.tar.gz: 4c3e390741a69b465b0d2298e158485203c319539989687989de6fba9e03039eb53ad5715949e76398d43514507d1d57c2159968a839ebea2b1e30a1a8393368
|
data/.github_changelog_generator
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v1.0.10](https://github.com/DragonBox/u3d/tree/v1.0.10) (2017-11-03)
|
4
|
+
[Full Changelog](https://github.com/DragonBox/u3d/compare/v1.0.9...v1.0.10)
|
5
|
+
|
6
|
+
**Fixed bugs:**
|
7
|
+
|
8
|
+
- u3d/download progress bar on Windows not going to 100% [\#164](https://github.com/DragonBox/u3d/issues/164)
|
9
|
+
|
10
|
+
**Closed issues:**
|
11
|
+
|
12
|
+
- u3d/install: confusing "-p not available on linux" message [\#181](https://github.com/DragonBox/u3d/issues/181)
|
13
|
+
- Linux CLI Activation in Unity \>= 5.4 [\#176](https://github.com/DragonBox/u3d/issues/176)
|
14
|
+
- u3d/install: already installed packages are reinstalled [\#161](https://github.com/DragonBox/u3d/issues/161)
|
15
|
+
|
16
|
+
**Merged pull requests:**
|
17
|
+
|
18
|
+
- u3d/download/install: --all option was broken. Added tests [\#184](https://github.com/DragonBox/u3d/pull/184) ([lacostej](https://github.com/lacostej))
|
19
|
+
- u3d install: Improve Linux warnings for package options \(fixes \#181\) [\#183](https://github.com/DragonBox/u3d/pull/183) ([lacostej](https://github.com/lacostej))
|
20
|
+
- Fix log termination [\#180](https://github.com/DragonBox/u3d/pull/180) ([niezbop](https://github.com/niezbop))
|
21
|
+
- u3d/list find package names under PlaybackEngines ivy.xml [\#178](https://github.com/DragonBox/u3d/pull/178) ([lacostej](https://github.com/lacostej))
|
22
|
+
- u3d/downloader: print progress improvements \(fix \#164\) [\#177](https://github.com/DragonBox/u3d/pull/177) ([lacostej](https://github.com/lacostej))
|
23
|
+
|
3
24
|
## [v1.0.9](https://github.com/DragonBox/u3d/tree/v1.0.9) (2017-10-31)
|
4
25
|
[Full Changelog](https://github.com/DragonBox/u3d/compare/v1.0.8...v1.0.9)
|
5
26
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
u3d (1.0.
|
4
|
+
u3d (1.0.10)
|
5
5
|
colored (>= 1.2, < 2.0.0)
|
6
6
|
commander (>= 4.4.0, < 5.0.0)
|
7
7
|
file-tail (>= 1.2.0)
|
@@ -118,6 +118,7 @@ GEM
|
|
118
118
|
|
119
119
|
PLATFORMS
|
120
120
|
ruby
|
121
|
+
x64-mingw32
|
121
122
|
x86-mingw32
|
122
123
|
|
123
124
|
DEPENDENCIES
|
data/config/log_rules.json
CHANGED
@@ -61,7 +61,7 @@
|
|
61
61
|
"fetched_line_pattern": "(?<message>.*)\\n",
|
62
62
|
"fetched_line_message": false,
|
63
63
|
"start_message": false,
|
64
|
-
"end_pattern": "Filename: (
|
64
|
+
"end_pattern": "Filename: (?:.+/(?<file>\\w+\\.\\w+))? Line: (?<line>-?\\d+)",
|
65
65
|
"end_message": "[LOG] %{file}(line %{line}): %{message}"
|
66
66
|
},
|
67
67
|
"log_assertion": {
|
data/lib/u3d/commands.rb
CHANGED
@@ -290,8 +290,8 @@ module U3d
|
|
290
290
|
|
291
291
|
def packages_with_unity_first(os, options)
|
292
292
|
if os == :linux
|
293
|
-
UI.important 'Option -a | --all
|
294
|
-
UI.important 'Option -p | --packages
|
293
|
+
UI.important 'Option -a | --all currently meaningless for Linux (only one package available)' if options[:all]
|
294
|
+
UI.important 'Option -p | --packages currently meaningless for Linux (only one package available)' if options[:packages]
|
295
295
|
end
|
296
296
|
temp = options[:packages] || ['Unity']
|
297
297
|
temp.insert(0, 'Unity') if temp.delete('Unity')
|
@@ -312,7 +312,10 @@ module U3d
|
|
312
312
|
end
|
313
313
|
|
314
314
|
def enforce_setup_coherence(packages, options, unity, definition)
|
315
|
-
|
315
|
+
if options[:all]
|
316
|
+
packages.clear
|
317
|
+
packages.concat(definition.available_packages)
|
318
|
+
end
|
316
319
|
if unity
|
317
320
|
UI.important "Unity #{unity.version} is already installed"
|
318
321
|
# Not needed since Linux custom u3d files contain only one entry wich is Unity
|
data/lib/u3d/installation.rb
CHANGED
@@ -46,6 +46,28 @@ module U3d
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
class PlaybackEngineUtils
|
50
|
+
def self.list_module_configs(playbackengine_parent_path)
|
51
|
+
Dir.glob("#{playbackengine_parent_path}/PlaybackEngines/*/ivy.xml")
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.node_value(config_path, node_name)
|
55
|
+
require 'rexml/document'
|
56
|
+
UI.verbose("reading #{config_path}")
|
57
|
+
raise "File not found at #{config_path}" unless File.exist? config_path
|
58
|
+
doc = REXML::Document.new(File.read(config_path))
|
59
|
+
REXML::XPath.first(doc, node_name).value
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.module_name(config_path)
|
63
|
+
node_value(config_path, 'ivy-module/info/@module')
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.unity_version(config_path)
|
67
|
+
node_value(config_path, 'ivy-module/info/@e:unityVersion')
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
49
71
|
class MacInstallation < Installation
|
50
72
|
require 'plist'
|
51
73
|
|
@@ -68,13 +90,9 @@ module U3d
|
|
68
90
|
end
|
69
91
|
|
70
92
|
def packages
|
71
|
-
|
72
|
-
|
73
|
-
return []
|
93
|
+
PlaybackEngineUtils.list_module_configs(root_path).map do |mpath|
|
94
|
+
PlaybackEngineUtils.module_name(mpath)
|
74
95
|
end
|
75
|
-
fpath = File.expand_path('PlaybackEngines', root_path)
|
76
|
-
return [] unless Dir.exist? fpath # install without package
|
77
|
-
Dir.entries(fpath).select { |e| File.directory?(File.join(fpath, e)) && !(e == '.' || e == '..') }
|
78
96
|
end
|
79
97
|
|
80
98
|
def clean_install?
|
@@ -96,11 +114,10 @@ module U3d
|
|
96
114
|
class LinuxInstallation < Installation
|
97
115
|
def version
|
98
116
|
# I don't find an easy way to extract the version on Linux
|
99
|
-
|
100
|
-
|
101
|
-
raise "Couldn't find
|
102
|
-
|
103
|
-
version = REXML::XPath.first(doc, 'ivy-module/info/@e:unityVersion').value
|
117
|
+
path = "#{root_path}/Editor/Data/"
|
118
|
+
package = PlaybackEngineUtils.list_module_configs(path).first
|
119
|
+
raise "Couldn't find a module under #{path}" unless package
|
120
|
+
version = PlaybackEngineUtils.unity_version(package)
|
104
121
|
if (m = version.match(/^(.*)x(.*)Linux$/))
|
105
122
|
version = "#{m[1]}#{m[2]}"
|
106
123
|
end
|
@@ -131,16 +148,10 @@ module U3d
|
|
131
148
|
|
132
149
|
class WindowsInstallation < Installation
|
133
150
|
def version
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
fpath = "#{root_path}/Editor/Data/PlaybackEngines/wp8support/ivy.xml" unless File.exist? fpath
|
139
|
-
raise "Couldn't find file #{fpath}" unless File.exist? fpath
|
140
|
-
doc = REXML::Document.new(File.read(fpath))
|
141
|
-
version = REXML::XPath.first(doc, 'ivy-module/info/@e:unityVersion').value
|
142
|
-
|
143
|
-
version
|
151
|
+
path = "#{root_path}/Editor/Data/"
|
152
|
+
package = PlaybackEngineUtils.list_module_configs(path).first
|
153
|
+
raise "Couldn't find a module under #{path}" unless package
|
154
|
+
PlaybackEngineUtils.unity_version(package)
|
144
155
|
end
|
145
156
|
|
146
157
|
def default_log_file
|
@@ -167,11 +178,10 @@ module U3d
|
|
167
178
|
end
|
168
179
|
|
169
180
|
def packages
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
Dir.entries(fpath).select { |e| File.directory?(File.join(fpath, e)) && !(e == '.' || e == '..') }
|
181
|
+
path = "#{root_path}/Editor/Data/"
|
182
|
+
PlaybackEngineUtils.list_module_configs(path).map do |mpath|
|
183
|
+
PlaybackEngineUtils.module_name(mpath)
|
184
|
+
end
|
175
185
|
end
|
176
186
|
|
177
187
|
def clean_install?
|
data/lib/u3d/log_analyzer.rb
CHANGED
data/lib/u3d/utils.rb
CHANGED
@@ -59,6 +59,7 @@ module U3d
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
# size a hint of the expected size
|
62
63
|
def download_file(path, url, size: nil)
|
63
64
|
File.open(path, 'wb') do |f|
|
64
65
|
uri = URI(url)
|
@@ -69,7 +70,9 @@ module U3d
|
|
69
70
|
request = Net::HTTP::Get.new uri
|
70
71
|
http.request request do |response|
|
71
72
|
begin
|
72
|
-
|
73
|
+
# override with actual results, this should help with
|
74
|
+
# innacurrate declared sizes, especially on Windows platform
|
75
|
+
size = Integer(response['Content-Length'])
|
73
76
|
rescue ArgumentError
|
74
77
|
UI.verbose 'Unable to get length of file in download'
|
75
78
|
end
|
@@ -81,13 +84,12 @@ module U3d
|
|
81
84
|
# FIXME revisits, this slows down download on fast network
|
82
85
|
# sleep 0.08 # adjust to reduce CPU
|
83
86
|
next unless print_progress
|
84
|
-
|
87
|
+
print_progress_now = Time.now.to_f - last_print_update > 0.5
|
88
|
+
# force printing when done downloading
|
89
|
+
print_progress_now = true if !print_progress_now && size && current >= size
|
90
|
+
next unless print_progress_now
|
85
91
|
last_print_update = Time.now.to_f
|
86
|
-
|
87
|
-
Utils.print_progress(current, size, started_at)
|
88
|
-
else
|
89
|
-
Utils.print_progress_nosize(current, started_at)
|
90
|
-
end
|
92
|
+
Utils.print_progress(current, size, started_at)
|
91
93
|
print "\n" unless UI.interactive?
|
92
94
|
end
|
93
95
|
end
|
@@ -122,7 +124,12 @@ module U3d
|
|
122
124
|
FileUtils.mkpath(dir) unless File.directory?(dir)
|
123
125
|
end
|
124
126
|
|
127
|
+
# if total is nil (unknown, falls back to print_progress_nosize)
|
125
128
|
def print_progress(current, total, started_at)
|
129
|
+
if total.nil?
|
130
|
+
print_progress_nosize(current, started_at)
|
131
|
+
return
|
132
|
+
end
|
126
133
|
ratio = [current.to_f / total, 1.0].min
|
127
134
|
percent = (ratio * 100.0).round(1)
|
128
135
|
arrow = (ratio * 20.0).floor
|
data/lib/u3d/version.rb
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
## --- END LICENSE BLOCK ---
|
22
22
|
|
23
23
|
module U3d
|
24
|
-
VERSION = '1.0.
|
24
|
+
VERSION = '1.0.10'.freeze
|
25
25
|
DESCRIPTION = 'Provides numerous tools for installing, managing and running the Unity3D game engine from command line.'.freeze
|
26
26
|
UNITY_VERSIONS_NOTE = "Unity3d uses the following version formatting: 0.0.0x0. The \'x\' can takes different values:\n"\
|
27
27
|
"\t. 'f' are the main release candidates for Unity3d\n"\
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: u3d
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jerome Lacoste
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-11-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: commander
|