module SvelteOnRails::Installer::Utils

def self.install_turbo

def self.install_turbo
  pkg_js = Rails.root.join("package.json")
  package_name = "@hotwired/turbo-rails"
  file_content = File.exist?(pkg_js) ? File.read(pkg_js) : ""
  if file_content.match?(/#{package_name}/)
    puts "#{package_name} is already present in package.json, assuming that it is set up well and working."
  else
    puts "Installing #{package_name} via npm..."
    if system("npm install #{package_name}")
      puts "#{package_name} successfully installed."
      add_line_to_file(Rails.root.join("app", "frontend", "entrypoints", "application.js"), "import '#{package_name}';")
    else
      abort "Failed to install #{package_name}. Please ensure npm is installed and try running 'npm install #{package_name}' manually."
    end
  end
end