added thing?

This commit is contained in:
Tristan Ancelet 2024-12-16 13:15:29 -06:00
parent 3be7c31aa5
commit e7f6697038

View File

@ -67,7 +67,7 @@ $CONFIG[:install_dir] = Dir.new(Dir.home) / '.opt'
$CONFIG[:desktop_path] = $CONFIG[:install_dir] / 'Discord' / 'discord.desktop' $CONFIG[:desktop_path] = $CONFIG[:install_dir] / 'Discord' / 'discord.desktop'
File.mkdir($CONFIG[:install_dir]) if not File.exist?($CONFIG[:install_dir]) File.mkdir($CONFIG[:install_dir]) if not File.exist?($CONFIG[:install_dir])
$CONFIG[:discord_path] = $CONFIG[:install_dir] / 'Discord' $CONFIG[:discord_path] = $CONFIG[:install_dir] / 'Discord'
$CONFIG[:desktop_file_path] = $CONFIG[:discord_path] / 'discord.desktop' $CONFIG[:desktop_file_path] = $CONFIG[:local_application_install_dir] / 'discord.desktop'
$CONFIG[:discord_version_file] = $CONFIG[:discord_path] / 'resources' / 'build_info.json' $CONFIG[:discord_version_file] = $CONFIG[:discord_path] / 'resources' / 'build_info.json'
$CONFIG[:action] = 'install' $CONFIG[:action] = 'install'
$CONFIG[:keep_installer] = false $CONFIG[:keep_installer] = false
@ -145,10 +145,34 @@ end.parse!
# BEGIN: Helper Classes # BEGIN: Helper Classes
class DesktopFile
@@file = File.open($CONFIG[:desktop_path])
@@installed_file = File.open($CONFIG[:desktop_file_path])
def needs_update?
@@installed_file.read() != contents
end
def update
if needs_update?
File.open(@@file, 'w') do |file|
puts "Updating Desktop File, changes are needed"
file.write(contents)
end
puts "update_desktop_file: Triggering desktop to install new desktop entry and refresh entries"
%x[ desktop-file-install --dir=#{$CONFIG[:local_application_install_dir]} #{$CONFIG[:desktop_path]} ]
else
puts "Not updating file. Changes not needed"
end
end
end
DISCORD_DESKTOP_TEMPLATE.def_method(DesktopFile, 'contents')
class Installer class Installer
URL_DOWNLOAD_BASE='https://dl.discordapp.net/apps/linux/{VERSION}/discord-{VERSION}.tar.gz' URL_DOWNLOAD_BASE='https://dl.discordapp.net/apps/linux/{VERSION}/discord-{VERSION}.tar.gz'
DOWNLOAD_URL='https://discord.com/api/download/stable?platform=linux&format=tar.gz' DOWNLOAD_URL='https://discord.com/api/download/stable?platform=linux&format=tar.gz'
@@desktop_file = DesktopFile.new
def needs_update? def needs_update?
local_version < remote_version local_version < remote_version
@ -208,7 +232,7 @@ class Installer
end end
end end
update_desktop_file @@desktop_file.update
end end
end end
@ -219,30 +243,6 @@ end
# BEGIN: Helper Functions # BEGIN: Helper Functions
def update_desktop_file
file_needs_updating = true
puts "update_desktop_file: Checking if desktop entry needs updating"
if File.exist?($CONFIG[:desktop_path])
puts "update_desktop_file: Desktop file exists, checking if it matches template"
File.open($CONFIG[:desktop_path], 'r') do |file|
if file.read() == DISCORD_DESKTOP_TEMPLATE.result(binding)
puts "update_desktop_file: Desktop file matches template. Not updating"
file_needs_updating = false
end
end
end
if file_needs_updating
File.open($CONFIG[:desktop_path], 'w') do |file|
puts "update_desktop_file: Desktop File was written"
file.write(DISCORD_DESKTOP_TEMPLATE.result(binding))
end
puts "update_desktop_file: Triggering desktop to install new desktop entry and refresh entries"
%x[ desktop-file-install --dir=#{$CONFIG[:local_application_install_dir].path} #{$CONFIG[:desktop_path]} ]
end
end
def make_backup def make_backup
files = { files = {
files: Array.new, files: Array.new,
@ -277,7 +277,6 @@ def make_backup
file_count = files[:files].count file_count = files[:files].count
files[:files].each_with_index { |file, i| files[:files].each_with_index { |file, i|
puts "make_backup : files : Backing up #{file} (#{i+1}/#{file_count})" if $CONFIG[:debug] puts "make_backup : files : Backing up #{file} (#{i+1}/#{file_count})" if $CONFIG[:debug]
EOF
File.open(file, 'rb') { |file_to_archive| File.open(file, 'rb') { |file_to_archive|
contents = file_to_archive.read() contents = file_to_archive.read()
tar.add_file_simple(file_to_archive.path.sub("#{Dir.home}/",''), file_to_archive.stat.mode, contents.length) { |io| tar.add_file_simple(file_to_archive.path.sub("#{Dir.home}/",''), file_to_archive.stat.mode, contents.length) { |io|
@ -339,7 +338,7 @@ case $CONFIG[:action]
make_backup make_backup
when 'update-desktop' when 'update-desktop'
update_desktop_file DesktopFile.new.update
end end