yatfa 1.0.78 → 1.0.79
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.
- package/bin/run-yatfa-agent.rb +40 -4
- package/lib/yatfa_agent/agent.rb +4 -4
- package/package.json +1 -1
package/bin/run-yatfa-agent.rb
CHANGED
|
@@ -17,12 +17,45 @@ require_relative "../lib/yatfa_agent/agent"
|
|
|
17
17
|
require_relative "../lib/yatfa_agent/setup"
|
|
18
18
|
require_relative "../agents"
|
|
19
19
|
|
|
20
|
-
def
|
|
20
|
+
def current_version
|
|
21
21
|
require "json"
|
|
22
22
|
real_path = File.realpath(__FILE__)
|
|
23
23
|
package_json_path = File.join(File.dirname(real_path), "..", "package.json")
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
JSON.parse(File.read(package_json_path))["version"]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def latest_npm_version
|
|
28
|
+
require "net/http"
|
|
29
|
+
require "json"
|
|
30
|
+
uri = URI("https://registry.npmjs.org/yatfa/latest")
|
|
31
|
+
response = Net::HTTP.get_response(uri)
|
|
32
|
+
return nil unless response.is_a?(Net::HTTPSuccess)
|
|
33
|
+
JSON.parse(response.body)["version"]
|
|
34
|
+
rescue StandardError
|
|
35
|
+
nil
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def check_version!
|
|
39
|
+
local = current_version
|
|
40
|
+
remote = latest_npm_version
|
|
41
|
+
return if remote.nil? || local == remote
|
|
42
|
+
|
|
43
|
+
# Try to self-delete the outdated install so next run fetches fresh
|
|
44
|
+
begin
|
|
45
|
+
real_path = File.realpath(__FILE__)
|
|
46
|
+
install_dir = File.expand_path("../..", real_path) # bin/../.. → package root
|
|
47
|
+
FileUtils.rm_rf(install_dir)
|
|
48
|
+
rescue StandardError
|
|
49
|
+
# No permission or other issue — just warn
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
puts "⚠️ Outdated version: v#{local} (latest: v#{remote})"
|
|
53
|
+
puts " Re-run: npx yatfa@latest #{ARGV.join(' ')}"
|
|
54
|
+
exit 1
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def show_version
|
|
58
|
+
puts "yatfa v#{current_version}"
|
|
26
59
|
exit 0
|
|
27
60
|
end
|
|
28
61
|
|
|
@@ -54,9 +87,12 @@ show_usage if ARGV.empty?
|
|
|
54
87
|
|
|
55
88
|
command = ARGV[0].downcase
|
|
56
89
|
|
|
57
|
-
# Handle version command
|
|
90
|
+
# Handle version command (skip version check — user is just asking what version they have)
|
|
58
91
|
show_version if %w[version -v --version].include?(command)
|
|
59
92
|
|
|
93
|
+
# Check for updates before doing anything else
|
|
94
|
+
check_version!
|
|
95
|
+
|
|
60
96
|
# Handle setup command
|
|
61
97
|
if command == "setup"
|
|
62
98
|
wizard = YatfaAgent::Setup::SetupWizard.new
|
package/lib/yatfa_agent/agent.rb
CHANGED
|
@@ -411,10 +411,10 @@ module YatfaAgent
|
|
|
411
411
|
puts "🔧 Using local setup-agent.rb for development"
|
|
412
412
|
docker_cmd.concat(["-v", "#{File.expand_path(local_setup_script)}:/tmp/setup-agent.rb:ro"])
|
|
413
413
|
|
|
414
|
-
#
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
docker_cmd.concat(["-v", "#{File.expand_path(
|
|
414
|
+
# Mount companion scripts that setup-agent.rb loads via require_relative
|
|
415
|
+
Dir.glob(File.join(File.dirname(local_setup_script), "setup-*.rb")).each do |companion|
|
|
416
|
+
basename = File.basename(companion)
|
|
417
|
+
docker_cmd.concat(["-v", "#{File.expand_path(companion)}:/tmp/#{basename}:ro"])
|
|
418
418
|
end
|
|
419
419
|
end
|
|
420
420
|
end
|