class Vgserver < Formula desc "VideoGrace Server" homepage "https://videograce.ru" url "https://videograce.ru/download/macos/vgserver-3.0.260704-arm64.tar.gz" sha256 "4199f0c8fc6a73e9f3654e3aad505b6b58e868c66f22909477c6f80736ff8a11" version "3.0.260704" depends_on "boost" depends_on "openssl@3" def install bin.install "bin/vgserver" pkgshare.install Dir["share/vgserver/*"] db_dir = var/"lib/vgserver/db" db_dir.mkpath (var/"lib/vgserver/storage").mkpath (var/"lib/vgserver/certs").mkpath (var/"log/vgserver").mkpath (etc/"vgserver").mkpath Dir[pkgshare/"db/*.db"].each do |db| target = db_dir/File.basename(db) cp db, target unless target.exist? end config_path = etc/"vgserver/vgserver.conf" unless config_path.exist? config = (pkgshare/"vgserver.conf.example").read .gsub("__PREFIX__", prefix.to_s) .gsub("__OPT_PREFIX__", opt_prefix.to_s) .gsub("__VAR__", var.to_s) .gsub("__ETC__", etc.to_s) config_path.write config end end service do run [opt_bin/"vgserver", "/no-service", etc/"vgserver/vgserver.conf"] keep_alive true working_dir var log_path var/"log/vgserver/stdout.log" error_log_path var/"log/vgserver/stderr.log" end test do assert_match "VideoGrace Server", shell_output("#{bin}/vgserver /help") end end