u3d 1.3.2 → 1.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +2 -2
- data/.github_changelog_generator +2 -1
- data/.rubocop.yml +4 -0
- data/CHANGELOG.md +19 -1
- data/Gemfile.lock +23 -20
- data/Rakefile +2 -9
- data/examples/Example1/Gemfile.lock +2 -2
- data/examples/Example2/Gemfile.lock +3 -3
- data/lib/u3d/cache.rb +3 -3
- data/lib/u3d/downloader.rb +1 -1
- data/lib/u3d/hub_modules_parser.rb +1 -1
- data/lib/u3d/installation.rb +2 -2
- data/lib/u3d/installer.rb +1 -1
- data/lib/u3d/unity_license.rb +2 -2
- data/lib/u3d/unity_module.rb +6 -8
- data/lib/u3d/unity_versions.rb +3 -3
- data/lib/u3d/utils.rb +9 -1
- data/lib/u3d/version.rb +5 -5
- data/lib/u3d_core/command_executor.rb +2 -2
- data/lib/u3d_core/helper.rb +3 -5
- data/lib/u3d_core/update_checker/changelog.rb +1 -1
- data/u3d.gemspec +3 -3
- metadata +8 -9
- data/.circleci/config.yml +0 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71c748719095b72650f60d6e9f7dca5a3bd6f2c00152d388c9205e7cd37a7b8f
|
4
|
+
data.tar.gz: d665b196e60a226cf8b97531469152f4ec6a5c2714c2a29ba365f067faba96ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d52cdb497db565d4e4ff910c74bd96c0df45fa4a918aea95b3c2cbdd196278c4c2e11a0e9c59fe2c4dd8daf022b375707ae133566920b7b92d3ce7397b6edd0
|
7
|
+
data.tar.gz: 6bfeaf9f80ec1fe152419b61eb69477e2098945d4926b2e54fe3e9f140ce854e325f54cde6db0c993c5fab95b666f28326950938f204e8e8a7da6c78443070be
|
data/.github/workflows/ci.yml
CHANGED
@@ -6,14 +6,14 @@ jobs:
|
|
6
6
|
fail-fast: false
|
7
7
|
matrix:
|
8
8
|
os: [ ubuntu, macos, windows ]
|
9
|
-
ruby: [ 2.
|
9
|
+
ruby: [ 2.6, 2.7, 3.0.7, 3.1, 3.2, 3.3 ] # somehow github uses ruby 3.3 when specifying 3.0
|
10
10
|
runs-on: ${{ matrix.os }}-latest
|
11
11
|
steps:
|
12
12
|
- name: git config autocrlf
|
13
13
|
run: git config --global core.autocrlf false
|
14
14
|
if: matrix.os == 'windows'
|
15
15
|
|
16
|
-
- uses: actions/checkout@
|
16
|
+
- uses: actions/checkout@v4
|
17
17
|
- uses: ruby/setup-ruby@v1
|
18
18
|
with:
|
19
19
|
ruby-version: ${{ matrix.ruby }}
|
data/.github_changelog_generator
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v1.3.3](https://github.com/DragonBox/u3d/tree/v1.3.3) (2023-01-04)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/DragonBox/u3d/compare/v1.3.2...v1.3.3)
|
6
|
+
|
7
|
+
**Closed issues:**
|
8
|
+
|
9
|
+
- u3d available getting a 403 [\#433](https://github.com/DragonBox/u3d/issues/433)
|
10
|
+
- `'user_error!': Unknown method 'info'` when List package or install unity [\#432](https://github.com/DragonBox/u3d/issues/432)
|
11
|
+
- Unable to install unity 2021.3.7f1 on windows [\#430](https://github.com/DragonBox/u3d/issues/430)
|
12
|
+
- unity\_versions.rb:70 can't modify frozen String: "" [\#429](https://github.com/DragonBox/u3d/issues/429)
|
13
|
+
|
14
|
+
**Merged pull requests:**
|
15
|
+
|
16
|
+
- fix: don't attempt to append to frozen string [\#435](https://github.com/DragonBox/u3d/pull/435) ([jlsalmon](https://github.com/jlsalmon))
|
17
|
+
- \[Fix\] U3d::Utils: replace Ruby agent with another one to bypass 403 from Unity [\#434](https://github.com/DragonBox/u3d/pull/434) ([niezbop](https://github.com/niezbop))
|
18
|
+
- fix: replace usage of nonexistent UI.info method [\#431](https://github.com/DragonBox/u3d/pull/431) ([jlsalmon](https://github.com/jlsalmon))
|
19
|
+
- Preparing release for 1.3.2 [\#428](https://github.com/DragonBox/u3d/pull/428) ([lacostej](https://github.com/lacostej))
|
20
|
+
|
3
21
|
## [v1.3.2](https://github.com/DragonBox/u3d/tree/v1.3.2) (2022-06-08)
|
4
22
|
|
5
23
|
[Full Changelog](https://github.com/DragonBox/u3d/compare/v1.3.1...v1.3.2)
|
@@ -731,4 +749,4 @@
|
|
731
749
|
|
732
750
|
|
733
751
|
|
734
|
-
\* *This Changelog was automatically generated
|
752
|
+
\* *This Changelog was automatically generated by [github_changelog_generator] (https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
u3d (1.3.
|
4
|
+
u3d (1.3.4)
|
5
5
|
colored (>= 1.2, < 2.0.0)
|
6
6
|
commander (>= 4.4.0, < 5.0.0)
|
7
7
|
fiddle
|
@@ -11,7 +11,7 @@ PATH
|
|
11
11
|
plist (>= 3.1.0, < 4.0.0)
|
12
12
|
rexml
|
13
13
|
rubyzip (>= 1.0.0)
|
14
|
-
security (= 0.1.
|
14
|
+
security (= 0.1.5)
|
15
15
|
|
16
16
|
GEM
|
17
17
|
remote: https://rubygems.org/
|
@@ -85,7 +85,7 @@ GEM
|
|
85
85
|
faraday-rack (1.0.0)
|
86
86
|
faraday-retry (1.0.3)
|
87
87
|
fiber-local (1.0.0)
|
88
|
-
fiddle (1.1.
|
88
|
+
fiddle (1.1.2)
|
89
89
|
file-tail (1.2.0)
|
90
90
|
tins (~> 1.0)
|
91
91
|
filesize (0.2.0)
|
@@ -106,14 +106,15 @@ GEM
|
|
106
106
|
minitest (5.15.0)
|
107
107
|
multi_json (1.15.0)
|
108
108
|
multipart-post (2.1.1)
|
109
|
-
nio4r (2.
|
109
|
+
nio4r (2.7.4)
|
110
110
|
octokit (4.22.0)
|
111
111
|
faraday (>= 0.9)
|
112
112
|
sawyer (~> 0.8.0, >= 0.5.3)
|
113
|
-
parallel (1.
|
114
|
-
parser (3.
|
113
|
+
parallel (1.24.0)
|
114
|
+
parser (3.3.5.0)
|
115
115
|
ast (~> 2.4.1)
|
116
|
-
|
116
|
+
racc
|
117
|
+
plist (3.7.1)
|
117
118
|
protocol-hpack (1.4.2)
|
118
119
|
protocol-http (0.22.6)
|
119
120
|
protocol-http1 (0.14.4)
|
@@ -122,9 +123,10 @@ GEM
|
|
122
123
|
protocol-hpack (~> 1.4)
|
123
124
|
protocol-http (~> 0.18)
|
124
125
|
public_suffix (4.0.7)
|
126
|
+
racc (1.8.1)
|
125
127
|
rainbow (3.1.1)
|
126
128
|
rake (13.0.6)
|
127
|
-
regexp_parser (2.
|
129
|
+
regexp_parser (2.9.2)
|
128
130
|
rexml (3.2.5)
|
129
131
|
rspec (3.11.0)
|
130
132
|
rspec-core (~> 3.11.0)
|
@@ -141,26 +143,27 @@ GEM
|
|
141
143
|
rspec-support (3.11.0)
|
142
144
|
rspec_junit_formatter (0.5.1)
|
143
145
|
rspec-core (>= 2, < 4, != 2.12.0)
|
144
|
-
rubocop (1.
|
146
|
+
rubocop (1.50.2)
|
147
|
+
json (~> 2.3)
|
145
148
|
parallel (~> 1.10)
|
146
|
-
parser (>= 3.
|
149
|
+
parser (>= 3.2.0.0)
|
147
150
|
rainbow (>= 2.2.2, < 4.0)
|
148
151
|
regexp_parser (>= 1.8, < 3.0)
|
149
|
-
rexml
|
150
|
-
rubocop-ast (>= 1.
|
152
|
+
rexml (>= 3.2.5, < 4.0)
|
153
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
151
154
|
ruby-progressbar (~> 1.7)
|
152
|
-
unicode-display_width (>=
|
153
|
-
rubocop-ast (1.
|
154
|
-
parser (>= 3.
|
155
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
156
|
+
rubocop-ast (1.30.0)
|
157
|
+
parser (>= 3.2.1.0)
|
155
158
|
rubocop-rake (0.6.0)
|
156
159
|
rubocop (~> 1.0)
|
157
|
-
ruby-progressbar (1.
|
160
|
+
ruby-progressbar (1.13.0)
|
158
161
|
ruby2_keywords (0.0.5)
|
159
162
|
rubyzip (2.3.2)
|
160
163
|
sawyer (0.8.2)
|
161
164
|
addressable (>= 2.3.5)
|
162
165
|
faraday (> 0.8, < 2.0)
|
163
|
-
security (0.1.
|
166
|
+
security (0.1.5)
|
164
167
|
simplecov (0.16.1)
|
165
168
|
docile (~> 1.1)
|
166
169
|
json (>= 1.8, < 3)
|
@@ -176,7 +179,7 @@ GEM
|
|
176
179
|
traces (0.4.1)
|
177
180
|
tzinfo (2.0.4)
|
178
181
|
concurrent-ruby (~> 1.0)
|
179
|
-
unicode-display_width (2.
|
182
|
+
unicode-display_width (2.6.0)
|
180
183
|
zeitwerk (2.5.4)
|
181
184
|
|
182
185
|
PLATFORMS
|
@@ -193,9 +196,9 @@ DEPENDENCIES
|
|
193
196
|
rake (>= 12.3.3)
|
194
197
|
rspec (~> 3.11.0)
|
195
198
|
rspec_junit_formatter (~> 0.5.1)
|
196
|
-
rubocop (~> 1.
|
199
|
+
rubocop (~> 1.50)
|
197
200
|
rubocop-rake (~> 0.6.0)
|
198
201
|
u3d!
|
199
202
|
|
200
203
|
BUNDLED WITH
|
201
|
-
2.3.
|
204
|
+
2.3.25
|
data/Rakefile
CHANGED
@@ -200,15 +200,8 @@ end
|
|
200
200
|
desc 'Run all rspec tests'
|
201
201
|
task :test_all do
|
202
202
|
formatter = "--format progress"
|
203
|
-
|
204
|
-
|
205
|
-
formatter += " -r rspec_junit_formatter --format RspecJunitFormatter -o /tmp/rspec/rspec.xml"
|
206
|
-
TEST_FILES = `(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)`.tr!("\n", ' ')
|
207
|
-
rspec_args = "#{formatter} #{TEST_FILES}"
|
208
|
-
else
|
209
|
-
formatter += ' --pattern "./spec/**/*_spec.rb"'
|
210
|
-
rspec_args = formatter
|
211
|
-
end
|
203
|
+
formatter += ' --pattern "./spec/**/*_spec.rb"'
|
204
|
+
rspec_args = formatter
|
212
205
|
sh "rspec #{rspec_args}"
|
213
206
|
end
|
214
207
|
|
@@ -16,7 +16,7 @@ PATH
|
|
16
16
|
plist (>= 3.1.0, < 4.0.0)
|
17
17
|
rexml
|
18
18
|
rubyzip (>= 1.0.0)
|
19
|
-
security (= 0.1.
|
19
|
+
security (= 0.1.5)
|
20
20
|
|
21
21
|
GEM
|
22
22
|
remote: https://rubygems.org/
|
@@ -75,7 +75,7 @@ GEM
|
|
75
75
|
plist (>= 3.1.0, < 4.0.0)
|
76
76
|
public_suffix (~> 2.0.0)
|
77
77
|
rubyzip (>= 1.3.0, < 2.0.0)
|
78
|
-
security (= 0.1.
|
78
|
+
security (= 0.1.5)
|
79
79
|
simctl (~> 1.6.3)
|
80
80
|
slack-notifier (>= 2.0.0, < 3.0.0)
|
81
81
|
terminal-notifier (>= 2.0.0, < 3.0.0)
|
@@ -16,7 +16,7 @@ PATH
|
|
16
16
|
plist (>= 3.1.0, < 4.0.0)
|
17
17
|
rexml
|
18
18
|
rubyzip (>= 1.0.0)
|
19
|
-
security (= 0.1.
|
19
|
+
security (= 0.1.5)
|
20
20
|
|
21
21
|
GEM
|
22
22
|
remote: https://rubygems.org/
|
@@ -75,7 +75,7 @@ GEM
|
|
75
75
|
plist (>= 3.1.0, < 4.0.0)
|
76
76
|
public_suffix (~> 2.0.0)
|
77
77
|
rubyzip (>= 1.3.0, < 2.0.0)
|
78
|
-
security (= 0.1.
|
78
|
+
security (= 0.1.5)
|
79
79
|
simctl (~> 1.6.3)
|
80
80
|
slack-notifier (>= 2.0.0, < 3.0.0)
|
81
81
|
terminal-notifier (>= 2.0.0, < 3.0.0)
|
@@ -142,7 +142,7 @@ GEM
|
|
142
142
|
rexml (3.2.5)
|
143
143
|
rouge (2.0.7)
|
144
144
|
rubyzip (1.3.0)
|
145
|
-
security (0.1.
|
145
|
+
security (0.1.5)
|
146
146
|
signet (0.12.0)
|
147
147
|
addressable (~> 2.3)
|
148
148
|
faraday (~> 0.9)
|
data/lib/u3d/cache.rb
CHANGED
@@ -104,9 +104,9 @@ module U3d
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def os_data_need_update?(data, os)
|
107
|
-
data[os.id2name].nil
|
108
|
-
|| data[os.id2name]['lastupdate'].nil
|
109
|
-
|| (Time.now.to_i - data[os.id2name]['lastupdate'] > CACHE_LIFE)\
|
107
|
+
data[os.id2name].nil? \
|
108
|
+
|| data[os.id2name]['lastupdate'].nil? \
|
109
|
+
|| (Time.now.to_i - data[os.id2name]['lastupdate'] > CACHE_LIFE) \
|
110
110
|
|| (data[os.id2name]['versions'] || []).empty?
|
111
111
|
end
|
112
112
|
|
data/lib/u3d/downloader.rb
CHANGED
@@ -31,7 +31,7 @@ module U3d
|
|
31
31
|
# Name of the directory for the package downloading
|
32
32
|
DOWNLOAD_DIRECTORY = 'Unity_Packages'
|
33
33
|
# Path to the directory for the package downloading
|
34
|
-
DOWNLOAD_PATH = "#{
|
34
|
+
DOWNLOAD_PATH = "#{Dir.home}/Downloads"
|
35
35
|
# Regex to get the name of a localization asset
|
36
36
|
UNITY_LANGUAGE_FILE_REGEX = %r{/\d+/[0-9.]+/([\w-]+)$}.freeze
|
37
37
|
# Regex to get the name of a package out of its file name
|
@@ -54,7 +54,7 @@ module U3d
|
|
54
54
|
versions_and_paths = versions_and_paths.select { |a| a[0].parts[0] == vn.parts[0] && a[0].parts[1] == vn.parts[1] && a[0].parts[2] >= vn.parts[2] }
|
55
55
|
|
56
56
|
if versions_and_paths.empty?
|
57
|
-
UI.
|
57
|
+
UI.message "No closest version from UnityHub found for version #{version}"
|
58
58
|
return []
|
59
59
|
end
|
60
60
|
path = versions_and_paths.first[1]
|
data/lib/u3d/installation.rb
CHANGED
@@ -180,7 +180,7 @@ module U3d
|
|
180
180
|
end
|
181
181
|
|
182
182
|
def default_log_file
|
183
|
-
"#{
|
183
|
+
"#{Dir.home}/Library/Logs/Unity/Editor.log"
|
184
184
|
end
|
185
185
|
|
186
186
|
def exe_path
|
@@ -293,7 +293,7 @@ module U3d
|
|
293
293
|
end
|
294
294
|
|
295
295
|
def default_log_file
|
296
|
-
"#{
|
296
|
+
"#{Dir.home}/.config/unity3d/Editor.log"
|
297
297
|
end
|
298
298
|
|
299
299
|
def exe_path
|
data/lib/u3d/installer.rb
CHANGED
@@ -424,7 +424,7 @@ module U3d
|
|
424
424
|
install_location = d.root.attributes['install-location']
|
425
425
|
raise "Not sure how to install this module with identifier #{identifier} install-location: #{install_location}" unless install_location.start_with? '/Applications/Unity/'
|
426
426
|
|
427
|
-
install_location.gsub(%(
|
427
|
+
install_location.gsub(%(/Applications/Unity), "#{unity_root_path}/Editor/Data")
|
428
428
|
end
|
429
429
|
end
|
430
430
|
|
data/lib/u3d/unity_license.rb
CHANGED
@@ -40,13 +40,13 @@ module U3d
|
|
40
40
|
# petit cachotier va!
|
41
41
|
def number
|
42
42
|
require 'base64'
|
43
|
-
Base64.decode64(self['DeveloperData'])[4
|
43
|
+
Base64.decode64(self['DeveloperData'])[4..]
|
44
44
|
end
|
45
45
|
|
46
46
|
class << self
|
47
47
|
LICENSES_DIR_MAC = File.join("/", "Library", "Application Support", "Unity").freeze
|
48
48
|
LICENSES_DIR_WINDOWS = File.join("C:/ProgramData", "Unity").freeze
|
49
|
-
LICENSES_DIR_LINUX = File.join(
|
49
|
+
LICENSES_DIR_LINUX = File.join(Dir.home, ".local", "share", "unity3d", "Unity").freeze
|
50
50
|
|
51
51
|
def from_path(path)
|
52
52
|
doc = REXML::Document.new(File.read(path))
|
data/lib/u3d/unity_module.rb
CHANGED
@@ -75,21 +75,19 @@ module U3d
|
|
75
75
|
|
76
76
|
# Optimized version of load_version_modules that only makes one HTTP call
|
77
77
|
def load_versions_modules(versions, cached_versions, os, offline)
|
78
|
-
ini_modules = versions
|
79
|
-
|
80
|
-
.map do |version, ini_data|
|
78
|
+
ini_modules = versions.to_h do |version|
|
79
|
+
ini_data = INIModulesParser.load_ini(version, cached_versions, os: os, offline: offline)
|
81
80
|
url_root = cached_versions[version]
|
82
81
|
modules = ini_data.map { |k, v| module_from_ini_data(k, v, url_root, os) }
|
83
82
|
[version, modules]
|
84
|
-
end
|
83
|
+
end
|
85
84
|
|
86
85
|
HubModulesParser.download_modules(os: os) unless offline
|
87
|
-
hub_modules = versions
|
88
|
-
|
89
|
-
.map do |version, json_data|
|
86
|
+
hub_modules = versions.to_h do |version|
|
87
|
+
json_data = HubModulesParser.load_modules(version, os: os, offline: true)
|
90
88
|
modules = json_data.map { |data| module_from_json_data(data, os) }
|
91
89
|
[version, modules]
|
92
|
-
end
|
90
|
+
end
|
93
91
|
|
94
92
|
return ini_modules.merge(hub_modules) do |_version, ini_version_modules, json_version_modules|
|
95
93
|
(ini_version_modules + json_version_modules).uniq(&:id)
|
data/lib/u3d/unity_versions.rb
CHANGED
@@ -64,7 +64,7 @@ module U3d
|
|
64
64
|
when Net::HTTPRedirection
|
65
65
|
# A session must be opened with the server before accessing forum
|
66
66
|
res = nil
|
67
|
-
cookie_str = ''
|
67
|
+
cookie_str = +''
|
68
68
|
# Store the name and value of the cookies returned by the server
|
69
69
|
response['set-cookie'].gsub(/\s+/, '').split(',').each do |c|
|
70
70
|
cookie_str << ("#{c.split(';', 2)[0]}; ")
|
@@ -181,9 +181,9 @@ module U3d
|
|
181
181
|
end
|
182
182
|
|
183
183
|
def fetch_from_json(url, pattern)
|
184
|
-
fetch_json(url, pattern).
|
184
|
+
fetch_json(url, pattern).to_h do |build|
|
185
185
|
[build['version'], pattern.match(build['downloadUrl'])[1]]
|
186
|
-
end
|
186
|
+
end
|
187
187
|
end
|
188
188
|
|
189
189
|
def fetch_betas(url, pattern)
|
data/lib/u3d/utils.rb
CHANGED
@@ -34,7 +34,11 @@ module U3d
|
|
34
34
|
# Regex to capture each part of a version string (0.0.0x0)
|
35
35
|
CSIDL_LOCAL_APPDATA = 0x001c
|
36
36
|
UNITY_VERSION_REGEX = /(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:(\w)(?:(\d+))?)?/.freeze
|
37
|
+
MOZILLA_AGENT_HEADER = {
|
38
|
+
'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0'
|
39
|
+
}.freeze
|
37
40
|
|
41
|
+
# rubocop:disable Metrics/ClassLength
|
38
42
|
class << self
|
39
43
|
def final_url(url, redirect_limit: 10)
|
40
44
|
follow_redirects(url, redirect_limit: redirect_limit, http_method: :head) do |request, _response|
|
@@ -56,6 +60,9 @@ module U3d
|
|
56
60
|
def follow_redirects(url, redirect_limit: 10, http_method: :get, request_headers: {}, &block)
|
57
61
|
raise 'Too many redirections' if redirect_limit.zero?
|
58
62
|
|
63
|
+
# Unity blocks the default Ruby agent, use another one
|
64
|
+
request_headers = MOZILLA_AGENT_HEADER.merge(request_headers)
|
65
|
+
|
59
66
|
response = nil
|
60
67
|
request = nil
|
61
68
|
uri = URI(url)
|
@@ -206,7 +213,7 @@ module U3d
|
|
206
213
|
def parse_unity_version(version)
|
207
214
|
ver = UNITY_VERSION_REGEX.match(version)
|
208
215
|
if ver.nil?
|
209
|
-
raise ArgumentError, "Version (#{version}) does not match the Unity "\
|
216
|
+
raise ArgumentError, "Version (#{version}) does not match the Unity " \
|
210
217
|
'version format 0.0.0x0'
|
211
218
|
end
|
212
219
|
[ver[1], ver[2], ver[3], ver[4], ver[5]]
|
@@ -340,6 +347,7 @@ module U3d
|
|
340
347
|
opt
|
341
348
|
end
|
342
349
|
end
|
350
|
+
# rubocop:enable Metrics/ClassLength
|
343
351
|
end
|
344
352
|
# rubocop:enable Metrics/ModuleLength
|
345
353
|
end
|
data/lib/u3d/version.rb
CHANGED
@@ -23,11 +23,11 @@
|
|
23
23
|
## --- END LICENSE BLOCK ---
|
24
24
|
|
25
25
|
module U3d
|
26
|
-
VERSION = '1.3.
|
26
|
+
VERSION = '1.3.4'
|
27
27
|
DESCRIPTION = 'Provides numerous tools for installing, managing and running the Unity game engine from command line.'
|
28
|
-
UNITY_VERSIONS_NOTE = "Unity uses the following version formatting: 0.0.0x0. The
|
29
|
-
"\t. 'f' are the main release candidates for Unity\n"\
|
30
|
-
"\t. 'p' are patches fixing those releases\n"\
|
31
|
-
"\t. 'b' are the beta releases\n"\
|
28
|
+
UNITY_VERSIONS_NOTE = "Unity uses the following version formatting: 0.0.0x0. The 'x' can takes different values:\n" \
|
29
|
+
"\t. 'f' are the main release candidates for Unity\n" \
|
30
|
+
"\t. 'p' are patches fixing those releases\n" \
|
31
|
+
"\t. 'b' are the beta releases\n" \
|
32
32
|
"\t. 'a' are the alpha releases (not currently discovered)\n"
|
33
33
|
end
|
@@ -149,12 +149,12 @@ module U3dCore
|
|
149
149
|
|
150
150
|
def grant_admin_privileges(command)
|
151
151
|
if Helper.windows?
|
152
|
-
raise CredentialsError, "The command
|
152
|
+
raise CredentialsError, "The command '#{command}' must be run in administrative shell" unless has_admin_privileges?
|
153
153
|
else
|
154
154
|
env_username = ENV['USER']
|
155
155
|
unless env_username == "root"
|
156
156
|
cred = U3dCore::Credentials.new(user: env_username)
|
157
|
-
raise CredentialsError, "The command
|
157
|
+
raise CredentialsError, "The command '#{command}' must be run with admin privileges" unless has_admin_privileges?
|
158
158
|
|
159
159
|
command = "sudo -k && echo #{cred.password.shellescape} | sudo -S bash -c \"#{command}\""
|
160
160
|
end
|
data/lib/u3d_core/helper.rb
CHANGED
@@ -28,9 +28,9 @@ require 'colored'
|
|
28
28
|
|
29
29
|
module U3dCore
|
30
30
|
module Helper
|
31
|
-
DEFAULT_LINUX_PATH = File.join(
|
32
|
-
DEFAULT_MAC_PATH = File.join(
|
33
|
-
DEFAULT_WINDOWS_PATH = File.join(
|
31
|
+
DEFAULT_LINUX_PATH = File.join(Dir.home, '.u3d').freeze
|
32
|
+
DEFAULT_MAC_PATH = File.join(Dir.home, 'Library', 'Application Support', 'u3d').freeze
|
33
|
+
DEFAULT_WINDOWS_PATH = File.join(Dir.home, 'AppData', 'Local', 'u3d').freeze
|
34
34
|
|
35
35
|
def self.data_path
|
36
36
|
case operating_system
|
@@ -115,7 +115,6 @@ module U3dCore
|
|
115
115
|
|
116
116
|
# the current operating system
|
117
117
|
def self.operating_system
|
118
|
-
# rubocop:disable Style/GuardClause
|
119
118
|
if linux?
|
120
119
|
return :linux
|
121
120
|
elsif mac?
|
@@ -125,7 +124,6 @@ module U3dCore
|
|
125
124
|
else
|
126
125
|
raise 'Could not assume what OS you\'re running, please specify it as much as possible'
|
127
126
|
end
|
128
|
-
# rubocop:enable Style/GuardClause
|
129
127
|
end
|
130
128
|
|
131
129
|
def self.win_64?
|
data/u3d.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.authors = ["Jerome Lacoste", "Paul Niezborala"]
|
11
11
|
spec.email = 'jerome@wewanttoknow.com'
|
12
12
|
|
13
|
-
spec.required_ruby_version = '>= 2.
|
13
|
+
spec.required_ruby_version = '>= 2.6.0'
|
14
14
|
|
15
15
|
spec.summary = "U3d"
|
16
16
|
spec.description = U3d::DESCRIPTION
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_dependency 'plist', '>= 3.1.0', '< 4.0.0' # Generate the Xcode config plist file
|
35
35
|
spec.add_dependency "rexml" # rexml was unbundled from the stdlib in ruby 3
|
36
36
|
spec.add_dependency 'rubyzip', '>= 1.0.0' # Installation of .zip files
|
37
|
-
spec.add_dependency 'security', '= 0.1.
|
37
|
+
spec.add_dependency 'security', '= 0.1.5' # macOS Keychain manager, a dead project, no updates expected
|
38
38
|
# Development only
|
39
39
|
spec.add_development_dependency "activesupport", ">= 5.2.4.3" # force secure transitive dep
|
40
40
|
spec.add_development_dependency "addressable", ">= 2.8.0" # force secure transitive dep
|
@@ -47,7 +47,7 @@ Gem::Specification.new do |spec|
|
|
47
47
|
spec.add_development_dependency "rake", ">= 12.3.3"
|
48
48
|
spec.add_development_dependency "rspec", "~> 3.11.0"
|
49
49
|
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.5.1'
|
50
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
50
|
+
spec.add_development_dependency 'rubocop', '~> 1.50' # for ruby 2.6 compatibility
|
51
51
|
spec.add_development_dependency 'rubocop-rake', '~> 0.6.0'
|
52
52
|
# spec.add_development_dependency 'rubocop-rspec', '~> 2.10.0'
|
53
53
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
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.3.
|
4
|
+
version: 1.3.4
|
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:
|
12
|
+
date: 2024-10-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: colored
|
@@ -167,14 +167,14 @@ dependencies:
|
|
167
167
|
requirements:
|
168
168
|
- - '='
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
version: 0.1.
|
170
|
+
version: 0.1.5
|
171
171
|
type: :runtime
|
172
172
|
prerelease: false
|
173
173
|
version_requirements: !ruby/object:Gem::Requirement
|
174
174
|
requirements:
|
175
175
|
- - '='
|
176
176
|
- !ruby/object:Gem::Version
|
177
|
-
version: 0.1.
|
177
|
+
version: 0.1.5
|
178
178
|
- !ruby/object:Gem::Dependency
|
179
179
|
name: activesupport
|
180
180
|
requirement: !ruby/object:Gem::Requirement
|
@@ -321,14 +321,14 @@ dependencies:
|
|
321
321
|
requirements:
|
322
322
|
- - "~>"
|
323
323
|
- !ruby/object:Gem::Version
|
324
|
-
version: '1.
|
324
|
+
version: '1.50'
|
325
325
|
type: :development
|
326
326
|
prerelease: false
|
327
327
|
version_requirements: !ruby/object:Gem::Requirement
|
328
328
|
requirements:
|
329
329
|
- - "~>"
|
330
330
|
- !ruby/object:Gem::Version
|
331
|
-
version: '1.
|
331
|
+
version: '1.50'
|
332
332
|
- !ruby/object:Gem::Dependency
|
333
333
|
name: rubocop-rake
|
334
334
|
requirement: !ruby/object:Gem::Requirement
|
@@ -351,7 +351,6 @@ executables:
|
|
351
351
|
extensions: []
|
352
352
|
extra_rdoc_files: []
|
353
353
|
files:
|
354
|
-
- ".circleci/config.yml"
|
355
354
|
- ".github/ISSUE_TEMPLATE.md"
|
356
355
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
357
356
|
- ".github/workflows/ci.yml"
|
@@ -530,14 +529,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
530
529
|
requirements:
|
531
530
|
- - ">="
|
532
531
|
- !ruby/object:Gem::Version
|
533
|
-
version: 2.
|
532
|
+
version: 2.6.0
|
534
533
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
535
534
|
requirements:
|
536
535
|
- - ">="
|
537
536
|
- !ruby/object:Gem::Version
|
538
537
|
version: '0'
|
539
538
|
requirements: []
|
540
|
-
rubygems_version: 3.
|
539
|
+
rubygems_version: 3.4.10
|
541
540
|
signing_key:
|
542
541
|
specification_version: 4
|
543
542
|
summary: U3d
|
data/.circleci/config.yml
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
# Ruby CircleCI 2.0 configuration file
|
2
|
-
#
|
3
|
-
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
-
#
|
5
|
-
version: 2.1
|
6
|
-
|
7
|
-
orbs:
|
8
|
-
ruby: circleci/ruby@1.1
|
9
|
-
|
10
|
-
#executors:
|
11
|
-
# linux:
|
12
|
-
# docker:
|
13
|
-
# - image: cimg/base:2020.01
|
14
|
-
# macos:
|
15
|
-
# macos:
|
16
|
-
# xcode: 11.4
|
17
|
-
|
18
|
-
workflows:
|
19
|
-
all-tests:
|
20
|
-
jobs:
|
21
|
-
- build:
|
22
|
-
matrix:
|
23
|
-
parameters:
|
24
|
-
# os: [linux]
|
25
|
-
ruby-version: ["2.5", "2.6", "2.7", "3.0", "3.1"]
|
26
|
-
|
27
|
-
jobs:
|
28
|
-
build:
|
29
|
-
parameters:
|
30
|
-
# os:
|
31
|
-
# type: executor
|
32
|
-
ruby-version:
|
33
|
-
type: string
|
34
|
-
|
35
|
-
docker:
|
36
|
-
- image: cimg/ruby:<< parameters.ruby-version >>
|
37
|
-
|
38
|
-
# executor: << parameters.os >>
|
39
|
-
|
40
|
-
working_directory: ~/repo
|
41
|
-
|
42
|
-
steps:
|
43
|
-
- checkout
|
44
|
-
|
45
|
-
# Download and cache dependencies
|
46
|
-
- restore_cache:
|
47
|
-
keys:
|
48
|
-
- v1-dependencies-{{ checksum "Gemfile.lock" }}
|
49
|
-
# fallback to using the latest cache if no exact match is found
|
50
|
-
- v1-dependencies-
|
51
|
-
|
52
|
-
- run:
|
53
|
-
name: Configure Bundler
|
54
|
-
command: |
|
55
|
-
echo 'export BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")' >> $BASH_ENV
|
56
|
-
source $BASH_ENV
|
57
|
-
gem install bundler -v "$BUNDLER_VERSION"
|
58
|
-
bundle config set path '.bundle'
|
59
|
-
|
60
|
-
- run:
|
61
|
-
name: install dependencies
|
62
|
-
command: |
|
63
|
-
bundle install --jobs=4 --retry=3
|
64
|
-
|
65
|
-
- save_cache:
|
66
|
-
paths:
|
67
|
-
- ./venv
|
68
|
-
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
|
69
|
-
|
70
|
-
# Database setup
|
71
|
-
# - run: bundle exec rake db:create
|
72
|
-
# - run: bundle exec rake db:schema:load
|
73
|
-
|
74
|
-
# run tests!
|
75
|
-
- run:
|
76
|
-
name: run tests
|
77
|
-
command: |
|
78
|
-
echo $BUNDLER_VERSION
|
79
|
-
bundle --version
|
80
|
-
bundle exec rake
|
81
|
-
|
82
|
-
# collect reports
|
83
|
-
- store_test_results:
|
84
|
-
path: /tmp/rspec/
|
85
|
-
- store_artifacts:
|
86
|
-
path: /tmp/rspec/
|
87
|
-
destination: test-results
|