mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-15 16:52:34 +00:00
69 lines
1.8 KiB
Ruby
69 lines
1.8 KiB
Ruby
class W3DHub
|
|
class Settings
|
|
def self.defaults
|
|
{
|
|
language: Gosu.user_languages.first.split("_").first,
|
|
app_install_dir: default_app_install_dir,
|
|
package_cache_dir: default_package_cache_dir,
|
|
wine_command: "wine",
|
|
create_wine_prefixes: true,
|
|
allow_diagnostic_reports: false,
|
|
server_list_username: "",
|
|
account: {},
|
|
applications: {},
|
|
games: {}
|
|
}
|
|
end
|
|
|
|
def self.default_app_install_dir
|
|
if W3DHub.windows?
|
|
"#{W3DHub.home_directory}/#{W3DHub::DIR_NAME}"
|
|
elsif W3DHub.linux?
|
|
"#{W3DHub.home_directory}/.local/share/#{W3DHub::DIR_NAME}"
|
|
elsif W3DHub.mac?
|
|
"#{W3DHub.home_directory}/.local/share/#{W3DHub::DIR_NAME}"
|
|
else
|
|
raise "Unknown platform: #{RbConfig::CONFIG["host_os"]}"
|
|
end
|
|
end
|
|
|
|
def self.default_package_cache_dir
|
|
if W3DHub.windows?
|
|
"#{W3DHub.home_directory}/#{W3DHub::DIR_NAME}/Launcher/package-cache"
|
|
elsif W3DHub.linux?
|
|
"#{W3DHub.home_directory}/.local/share/#{W3DHub::DIR_NAME}/package-cache"
|
|
elsif W3DHub.mac?
|
|
"#{W3DHub.home_directory}/.local/share/#{W3DHub::DIR_NAME}/package-cache"
|
|
else
|
|
raise "Unknown platform: #{RbConfig::CONFIG["host_os"]}"
|
|
end
|
|
end
|
|
|
|
def initialize
|
|
unless File.exist?(SETTINGS_FILE_PATH)
|
|
@settings = Settings.defaults
|
|
|
|
save_settings
|
|
else
|
|
load_settings
|
|
end
|
|
end
|
|
|
|
def [](*args)
|
|
@settings.dig(*args)
|
|
end
|
|
|
|
def []=(key, value)
|
|
@settings[key] = value
|
|
end
|
|
|
|
def load_settings
|
|
@settings = JSON.parse(File.read(SETTINGS_FILE_PATH), symbolize_names: true)
|
|
end
|
|
|
|
def save_settings
|
|
File.write(SETTINGS_FILE_PATH, @settings.to_json)
|
|
end
|
|
end
|
|
end
|