Icarus-Mod-Tools 1.3.1 → 1.3.3
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/Gemfile.lock +1 -1
- data/lib/icarus/mod/cli/list.rb +13 -7
- data/lib/icarus/mod/cli/sync.rb +5 -2
- data/lib/icarus/mod/tools/sync_helpers.rb +1 -1
- data/lib/icarus/mod/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da25ba84ba4828a4e4124bda2485f6673a23993a390b0f674f83ce8c185282c3
|
4
|
+
data.tar.gz: 1e33e3d09e97954e5639f0a0f880bad54bd7e5a79c2d650f41d2ee80cb097159
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d915eb7c9846df40a57aef8474e2681ce7a5724ca3e1f04cb8a999f4eab9c3c557ae64445cac0a809874a067866c3ca3db2f29586294b93193ac2a20fe9f7009
|
7
|
+
data.tar.gz: 3fbea0d34dc3b5d4a5e457ad4092a00a5f1529405ea4461c3e4a79aff3b73ce3c332759ad4f1ac7cbfabad38e74f4ae3b8ee763e4cd3654bbb8d7fb805ca1f12
|
data/Gemfile.lock
CHANGED
data/lib/icarus/mod/cli/list.rb
CHANGED
@@ -23,15 +23,21 @@ module Icarus
|
|
23
23
|
method_option :filter, type: :array, default: [], desc: "Filter by field (name, author, etc.)"
|
24
24
|
def mods
|
25
25
|
valid_keys = Icarus::Mod::Tools::Modinfo::HASHKEYS + [:updated_at]
|
26
|
-
sort_field = options[:sort].to_sym
|
27
|
-
filter_field = options[:filter].first.to_sym
|
28
|
-
filter_value = options[:filter].last.to_s
|
29
26
|
|
30
|
-
|
27
|
+
sort_field = options[:sort]&.to_sym
|
31
28
|
|
32
|
-
|
29
|
+
filter = !options[:filter].empty?
|
33
30
|
|
34
|
-
|
31
|
+
if filter
|
32
|
+
filter_field = options[:filter].first&.to_sym
|
33
|
+
filter_value = options[:filter].last&.to_s
|
34
|
+
|
35
|
+
raise Icarus::Mod::Tools::Error, "Invalid filter option #{options[:filter]}" unless options[:filter].empty? || options[:filter]&.count == 2
|
36
|
+
|
37
|
+
raise Icarus::Mod::Tools::Error, "Invalid filter field '#{filter_field}'" unless filter_field && valid_keys.include?(filter_field)
|
38
|
+
end
|
39
|
+
|
40
|
+
raise Icarus::Mod::Tools::Error, "Invalid sort field '#{sort_field}'" unless valid_keys.include?(sort_field)
|
35
41
|
|
36
42
|
puts "Sorted by #{sort_field}" if sort_field && verbose > 2
|
37
43
|
puts "Filtered by #{filter_field} = #{filter_value}" if filter_field && verbose > 2
|
@@ -70,7 +76,7 @@ module Icarus
|
|
70
76
|
end
|
71
77
|
|
72
78
|
puts "Total: #{mods.count}" if verbose?
|
73
|
-
rescue
|
79
|
+
rescue Icarus::Mod::Tools::Error => e
|
74
80
|
puts e.message
|
75
81
|
exit 1
|
76
82
|
end
|
data/lib/icarus/mod/cli/sync.rb
CHANGED
@@ -15,12 +15,12 @@ module Icarus
|
|
15
15
|
puts "Retrieving repository Data..." if verbose?
|
16
16
|
repositories = modinfo_sync.repositories
|
17
17
|
|
18
|
-
raise "Unable to find any repositories!" unless repositories.any?
|
18
|
+
raise Icarus::Mod::Tools::Error, "Unable to find any repositories!" unless repositories.any?
|
19
19
|
|
20
20
|
puts "Retrieving modinfo Array..." if verbose?
|
21
21
|
modinfo_array = modinfo_sync.modinfo_data(repositories, verbose: verbose > 1)&.map(&:download_url)&.compact
|
22
22
|
|
23
|
-
raise "Unable to find any modinfo.json files!" unless modinfo_array&.any?
|
23
|
+
raise Icarus::Mod::Tools::Error, "Unable to find any modinfo.json files!" unless modinfo_array&.any?
|
24
24
|
|
25
25
|
puts "Saving to Firestore..." if verbose?
|
26
26
|
response = modinfo_sync.update(modinfo_array)
|
@@ -67,6 +67,9 @@ module Icarus
|
|
67
67
|
end
|
68
68
|
|
69
69
|
puts "Deleted #{delete_array.count} outdated mods" if verbose?
|
70
|
+
rescue Icarus::Mod::Tools::Error => e
|
71
|
+
warn e.message
|
72
|
+
exit 1
|
70
73
|
end
|
71
74
|
end
|
72
75
|
end
|
@@ -12,7 +12,7 @@ module Icarus
|
|
12
12
|
def retrieve_from_url(url)
|
13
13
|
res = Net::HTTP.get_response(URI(url))
|
14
14
|
|
15
|
-
raise "HTTP Request failed (#{res.code}): #{res.message}" unless res&.code == "200"
|
15
|
+
raise Icarus::Mod::Tools::Error, "HTTP Request failed for #{url} (#{res.code}): #{res.message}" unless res&.code == "200"
|
16
16
|
|
17
17
|
JSON.parse(res.body, symbolize_names: true)
|
18
18
|
end
|
data/lib/icarus/mod/version.rb
CHANGED