legionio 1.6.43 → 1.6.44

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17578bcb7fd7292eb90672503f016fbc426e771bec3ca6a4d822aa20019b8979
4
- data.tar.gz: f31d286761b71e11338608c17a24ae051b9d0a3aab6aec61ae0ecb655c8b01c8
3
+ metadata.gz: 1d5e89a840a146657264710fe44bb2e60a3be0b7b44aece296a8fa1b7abe51df
4
+ data.tar.gz: e49ca0b195a65c40647960f4c1c7e734b939106200c72d65e992210298a900c7
5
5
  SHA512:
6
- metadata.gz: 811ec04a329c5d791fbcbaecdcec3880bbedccc085016f573634e457998b3e625dfe4bcff3d9ebd37a08251ce671aea15765626b559b2990e28d1dbc938ccecf
7
- data.tar.gz: 0fba42942c96a2add0b454edd4f5be563f93dd182ac7f8b10f7203062a2ab85aa6a07a9876587f04a16fcd16d22a6f4a4b0aa62a101bd29efc849693d56283c3
6
+ metadata.gz: 0aacaf7a1d32a6c32bb0862ce0d2b569f1e528fcb31b77f4aa00e78ecbb021a0448ae1591ccff3251cfe61b41b9392a7415da6d40fcf56518b99f2305ddc422b
7
+ data.tar.gz: a1aa3f9cacd5a88f4351a3014fc9c2a67b3fd225b594937585d64239eb4e349296896151b828d8ef5646994e08897b10378f070a42e4fbc0d186668c6011bd30
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.6.44] - 2026-03-31
6
+
7
+ ### Added
8
+ - `legionio setup <pack>` now writes `~/.legionio/.packs/<name>` marker file and `~/.legionio/settings/packs.json` on successful install, enabling automatic pack reinstall after `brew upgrade` (companion to homebrew-tap#19)
9
+
5
10
  ## [1.6.43] - 2026-03-31
6
11
 
7
12
  ### Added
@@ -211,7 +211,10 @@ module Legion
211
211
  pack = PACKS[pack_name]
212
212
  installed, missing = partition_gems(pack[:gems])
213
213
 
214
- return report_already_installed(pack_name, installed) if missing.empty?
214
+ if missing.empty?
215
+ write_pack_marker(pack_name)
216
+ return report_already_installed(pack_name, installed)
217
+ end
215
218
  return report_dry_run(pack_name, installed, missing) if options[:dry_run]
216
219
 
217
220
  execute_pack_install(pack_name, installed, missing)
@@ -255,6 +258,7 @@ module Legion
255
258
  else
256
259
  out.spacer
257
260
  if failures.empty?
261
+ write_pack_marker(pack_name)
258
262
  out.success("#{pack_name} pack installed (#{successes.size} gem(s))")
259
263
  suggest_next_steps(out, pack_name)
260
264
  else
@@ -294,6 +298,30 @@ module Legion
294
298
  end
295
299
  end
296
300
 
301
+ def write_pack_marker(pack_name)
302
+ marker_dir = File.expand_path('~/.legionio/.packs')
303
+ FileUtils.mkdir_p(marker_dir)
304
+ FileUtils.touch(File.join(marker_dir, pack_name.to_s))
305
+ update_packs_setting(pack_name)
306
+ end
307
+
308
+ def update_packs_setting(pack_name)
309
+ settings_file = File.expand_path('~/.legionio/settings/packs.json')
310
+ data = if File.exist?(settings_file)
311
+ ::JSON.parse(File.read(settings_file))
312
+ else
313
+ {}
314
+ end
315
+ packs = Array(data['packs'])
316
+ packs << pack_name.to_s unless packs.include?(pack_name.to_s)
317
+ data['packs'] = packs.sort
318
+ FileUtils.mkdir_p(File.dirname(settings_file))
319
+ File.write(settings_file, ::JSON.pretty_generate(data))
320
+ rescue ::JSON::ParserError
321
+ data = { 'packs' => [pack_name.to_s] }
322
+ File.write(settings_file, ::JSON.pretty_generate(data))
323
+ end
324
+
297
325
  def suggest_next_steps(out, pack_name)
298
326
  out.spacer
299
327
  case pack_name
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legion
4
- VERSION = '1.6.43'
4
+ VERSION = '1.6.44'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.43
4
+ version: 1.6.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity