diff --git a/Gemfile b/Gemfile index 89963ac..d60d4a0 100644 --- a/Gemfile +++ b/Gemfile @@ -3,4 +3,5 @@ source "https://rubygems.org" gem "cyberarm_engine" gem "launchy" gem "i18n" +gem "rexml" # gem "async-websocket" diff --git a/Gemfile.lock b/Gemfile.lock index 6be255f..2e4a628 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,6 +4,7 @@ GEM addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) clipboard (1.3.6) + concurrent-ruby (1.1.9) cyberarm_engine (0.19.1) clipboard (~> 1.3.5) excon (~> 0.78.0) @@ -12,9 +13,12 @@ GEM excon (0.78.1) gosu (1.2.0) gosu_more_drawables (0.3.1) + i18n (1.8.11) + concurrent-ruby (~> 1.0) launchy (2.5.0) addressable (~> 2.7) public_suffix (4.0.6) + rexml (3.2.5) PLATFORMS x64-mingw32 @@ -22,7 +26,9 @@ PLATFORMS DEPENDENCIES cyberarm_engine + i18n launchy + rexml BUNDLED WITH 2.2.28 diff --git a/lib/application_manager/tasks/repairer.rb b/lib/application_manager/tasks/repairer.rb index fe4ba54..c43ee61 100644 --- a/lib/application_manager/tasks/repairer.rb +++ b/lib/application_manager/tasks/repairer.rb @@ -1,6 +1,19 @@ class W3DHub class ApplicationManager class Repairer < Task + def type + :repairer + end + + def exec_task + # fetch manifests + # load manifests + # run presence and checksum checks + # extract and re/place broken/missing files + # if a large number of files are missing from a single package + # simply reextract the whole thing + # mark application as installed/repaired + end end end end \ No newline at end of file diff --git a/lib/application_manager/tasks/uninstaller.rb b/lib/application_manager/tasks/uninstaller.rb index 4fa24e3..cd915b3 100644 --- a/lib/application_manager/tasks/uninstaller.rb +++ b/lib/application_manager/tasks/uninstaller.rb @@ -1,6 +1,21 @@ class W3DHub class ApplicationManager class Uninstaller < Task + def type + :uninstaller + end + + def exec_task + # TODO: cherrypick or nuke installation folder + # A: + # fetch manifests + # load manifests + # build list of files + # delete list of files + # B: + # Nuke installation folder + # mark application as uninstalled + end end end end \ No newline at end of file diff --git a/lib/application_manager/tasks/updater.rb b/lib/application_manager/tasks/updater.rb new file mode 100644 index 0000000..10a7ae7 --- /dev/null +++ b/lib/application_manager/tasks/updater.rb @@ -0,0 +1,19 @@ +class W3DHub + class ApplicationManager + class Updater < Task + def type + :updater + end + + def exec_task + # Fetch manifests + # Load manifests + # build file list + # find new packages + # unpack new packages + # TODO: detect patch files and handle them + # update installed game version + end + end + end +end diff --git a/w3dhub.rb b/w3dhub.rb index 9c3c65b..4f44059 100644 --- a/w3dhub.rb +++ b/w3dhub.rb @@ -12,7 +12,6 @@ require "rexml" require "i18n" require "launchy" -require "zip" I18n.load_path << Dir[File.expand_path("locales") + "/*.yml"] I18n.default_locale = :en