├── .cargo └── config.toml ├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug.yaml │ ├── feature.yaml │ └── question.yaml └── workflows │ └── main.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── assets ├── MaterialIcons-Regular.ttf ├── NotoSans-Regular.ttf ├── flatpak │ ├── com.github.mtkennerly.ludusavi.desktop │ └── com.github.mtkennerly.ludusavi.metainfo.xml ├── icon.ico ├── icon.kra ├── icon.png ├── icon.svg ├── linux │ ├── com.mtkennerly.ludusavi.desktop │ └── com.mtkennerly.ludusavi.metainfo.xml └── windows │ └── manifest.xml ├── clippy.toml ├── crowdin.yml ├── docs ├── cli.md ├── demo-cli.gif ├── demo-gui.gif ├── help │ ├── application-folder.md │ ├── backup-automation.md │ ├── backup-exclusions.md │ ├── backup-retention.md │ ├── backup-structure.md │ ├── backup-validation.md │ ├── cloud-backup.md │ ├── command-line.md │ ├── configuration-file.md │ ├── custom-games.md │ ├── duplicates.md │ ├── environment-variables.md │ ├── filter.md │ ├── game-launch-wrapping.md │ ├── installation.md │ ├── logging.md │ ├── missing-saves.md │ ├── redirects.md │ ├── roots.md │ ├── selective-scanning.md │ ├── transfer-between-operating-systems.md │ └── troubleshooting.md ├── sample-gui-linux.png └── schema │ ├── api-input.yaml │ ├── api-output.yaml │ ├── config.yaml │ └── general-output.yaml ├── lang ├── ar-SA.ftl ├── cs-CZ.ftl ├── de-DE.ftl ├── en-US.ftl ├── eo-UY.ftl ├── es-ES.ftl ├── fi-FI.ftl ├── fil-PH.ftl ├── fr-FR.ftl ├── it-IT.ftl ├── ja-JP.ftl ├── ko-KR.ftl ├── nl-NL.ftl ├── no-NO.ftl ├── pl-PL.ftl ├── pt-BR.ftl ├── ru-RU.ftl ├── sv-SE.ftl ├── th-TH.ftl ├── tr-TR.ftl ├── uk-UA.ftl ├── vi-VN.ftl ├── zh-CN.ftl └── zh-TW.ftl ├── rustfmt.toml ├── src ├── cli.rs ├── cli │ ├── api.rs │ ├── parse.rs │ ├── report.rs │ └── ui.rs ├── cloud.rs ├── gui.rs ├── gui │ ├── app.rs │ ├── badge.rs │ ├── button.rs │ ├── common.rs │ ├── editor.rs │ ├── file_tree.rs │ ├── font.rs │ ├── game_list.rs │ ├── icon.rs │ ├── modal.rs │ ├── notification.rs │ ├── popup_menu.rs │ ├── screen.rs │ ├── search.rs │ ├── shortcuts.rs │ ├── style.rs │ ├── undoable.rs │ └── widget.rs ├── lang.rs ├── main.rs ├── metadata.rs ├── path.rs ├── prelude.rs ├── resource.rs ├── resource │ ├── cache.rs │ ├── config.rs │ ├── config │ │ └── root.rs │ └── manifest.rs ├── scan.rs ├── scan │ ├── backup.rs │ ├── change.rs │ ├── duplicate.rs │ ├── game_filter.rs │ ├── launchers.rs │ ├── launchers │ │ ├── generic.rs │ │ ├── heroic.rs │ │ ├── heroic │ │ │ ├── gog.rs │ │ │ ├── legendary.rs │ │ │ ├── nile.rs │ │ │ └── sideload.rs │ │ ├── legendary.rs │ │ └── lutris.rs │ ├── layout.rs │ ├── preview.rs │ ├── registry.rs │ ├── registry │ │ └── win.rs │ ├── saves.rs │ ├── steam.rs │ └── title.rs ├── serialization.rs ├── testing.rs ├── wrap.rs └── wrap │ └── heroic.rs ├── tasks.py └── tests ├── .editorconfig ├── backup ├── game1-zipped │ ├── mapping.yaml │ └── test.zip ├── game1 │ ├── drive-X │ │ ├── file1.txt │ │ └── file2.txt │ └── mapping.yaml ├── game3-renamed │ ├── mapping.yaml │ └── registry.yaml ├── ignored-invalid-mapping │ └── mapping.yaml ├── ignored-no-mapping │ └── .keep └── migrate-legacy-backup │ ├── drive-X │ └── file1.txt │ └── mapping.yaml ├── home ├── .config │ └── xdgConfig.txt ├── .local │ └── share │ │ └── xdgData.txt ├── AppData │ ├── Local │ │ └── winLocalAppData.txt │ └── Roaming │ │ └── winAppData.txt ├── Documents │ └── winDocuments.txt └── data.txt ├── launchers ├── heroic-gog-with-store-cache │ ├── GamesConfig │ │ └── app-1.json │ ├── gog_store │ │ └── installed.json │ └── store_cache │ │ └── gog_library.json ├── heroic-gog-without-store-cache │ ├── GamesConfig │ │ └── app-1.json │ └── gog_store │ │ ├── installed.json │ │ └── library.json ├── heroic-legendary │ ├── GamesConfig │ │ └── app-2.json │ └── store_cache │ │ └── legendary_library.json ├── heroic-nile │ ├── GamesConfig │ │ └── app-1.json │ └── store_cache │ │ └── nile_library.json ├── heroic-sideload │ ├── GamesConfig │ │ └── app-1.json │ └── sideload_apps │ │ └── library.json ├── legendary │ └── installed.json ├── lutris-db │ └── pga.db ├── lutris-merged │ ├── games │ │ ├── windows-game-1683516078.yaml │ │ └── windows-game-1683516079.yaml │ └── pga.db ├── lutris-spec │ └── games │ │ └── windows-game.yaml └── lutris-split │ ├── config │ └── games │ │ ├── windows-game-1683516078.yaml │ │ └── windows-game-1683516079.yaml │ └── data │ └── pga.db ├── ludusavi.reg ├── root-[not]-glob └── game-[not]-glob │ ├── file1.txt │ └── file2.txt ├── root1 └── game1 │ ├── ignored.txt │ └── subdir │ └── file2.txt ├── root2 ├── game1 │ └── file1.txt └── game2 │ └── file1.txt ├── root3 ├── game5 │ └── data │ │ └── file1.txt └── game_2 │ └── file1.txt └── wine-prefix ├── drive_c └── users │ └── anyone │ └── data.txt └── user.reg /.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.cargo/config.toml -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.github/ISSUE_TEMPLATE/bug.yaml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.github/ISSUE_TEMPLATE/feature.yaml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.github/ISSUE_TEMPLATE/question.yaml -------------------------------------------------------------------------------- /.github/workflows/main.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.github/workflows/main.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/README.md -------------------------------------------------------------------------------- /assets/MaterialIcons-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/MaterialIcons-Regular.ttf -------------------------------------------------------------------------------- /assets/NotoSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/NotoSans-Regular.ttf -------------------------------------------------------------------------------- /assets/flatpak/com.github.mtkennerly.ludusavi.desktop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/flatpak/com.github.mtkennerly.ludusavi.desktop -------------------------------------------------------------------------------- /assets/flatpak/com.github.mtkennerly.ludusavi.metainfo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/flatpak/com.github.mtkennerly.ludusavi.metainfo.xml -------------------------------------------------------------------------------- /assets/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/icon.ico -------------------------------------------------------------------------------- /assets/icon.kra: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/icon.kra -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/icon.png -------------------------------------------------------------------------------- /assets/icon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/icon.svg -------------------------------------------------------------------------------- /assets/linux/com.mtkennerly.ludusavi.desktop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/linux/com.mtkennerly.ludusavi.desktop -------------------------------------------------------------------------------- /assets/linux/com.mtkennerly.ludusavi.metainfo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/linux/com.mtkennerly.ludusavi.metainfo.xml -------------------------------------------------------------------------------- /assets/windows/manifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/assets/windows/manifest.xml -------------------------------------------------------------------------------- /clippy.toml: -------------------------------------------------------------------------------- 1 | ignore-interior-mutability = ["..", "ludusavi::path::StrictPath"] 2 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/crowdin.yml -------------------------------------------------------------------------------- /docs/cli.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/cli.md -------------------------------------------------------------------------------- /docs/demo-cli.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/demo-cli.gif -------------------------------------------------------------------------------- /docs/demo-gui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/demo-gui.gif -------------------------------------------------------------------------------- /docs/help/application-folder.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/application-folder.md -------------------------------------------------------------------------------- /docs/help/backup-automation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/backup-automation.md -------------------------------------------------------------------------------- /docs/help/backup-exclusions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/backup-exclusions.md -------------------------------------------------------------------------------- /docs/help/backup-retention.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/backup-retention.md -------------------------------------------------------------------------------- /docs/help/backup-structure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/backup-structure.md -------------------------------------------------------------------------------- /docs/help/backup-validation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/backup-validation.md -------------------------------------------------------------------------------- /docs/help/cloud-backup.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/cloud-backup.md -------------------------------------------------------------------------------- /docs/help/command-line.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/command-line.md -------------------------------------------------------------------------------- /docs/help/configuration-file.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/configuration-file.md -------------------------------------------------------------------------------- /docs/help/custom-games.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/custom-games.md -------------------------------------------------------------------------------- /docs/help/duplicates.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/duplicates.md -------------------------------------------------------------------------------- /docs/help/environment-variables.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/environment-variables.md -------------------------------------------------------------------------------- /docs/help/filter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/filter.md -------------------------------------------------------------------------------- /docs/help/game-launch-wrapping.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/game-launch-wrapping.md -------------------------------------------------------------------------------- /docs/help/installation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/installation.md -------------------------------------------------------------------------------- /docs/help/logging.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/logging.md -------------------------------------------------------------------------------- /docs/help/missing-saves.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/missing-saves.md -------------------------------------------------------------------------------- /docs/help/redirects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/redirects.md -------------------------------------------------------------------------------- /docs/help/roots.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/roots.md -------------------------------------------------------------------------------- /docs/help/selective-scanning.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/selective-scanning.md -------------------------------------------------------------------------------- /docs/help/transfer-between-operating-systems.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/transfer-between-operating-systems.md -------------------------------------------------------------------------------- /docs/help/troubleshooting.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/help/troubleshooting.md -------------------------------------------------------------------------------- /docs/sample-gui-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/sample-gui-linux.png -------------------------------------------------------------------------------- /docs/schema/api-input.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/schema/api-input.yaml -------------------------------------------------------------------------------- /docs/schema/api-output.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/schema/api-output.yaml -------------------------------------------------------------------------------- /docs/schema/config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/schema/config.yaml -------------------------------------------------------------------------------- /docs/schema/general-output.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/docs/schema/general-output.yaml -------------------------------------------------------------------------------- /lang/ar-SA.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/ar-SA.ftl -------------------------------------------------------------------------------- /lang/cs-CZ.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/cs-CZ.ftl -------------------------------------------------------------------------------- /lang/de-DE.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/de-DE.ftl -------------------------------------------------------------------------------- /lang/en-US.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/en-US.ftl -------------------------------------------------------------------------------- /lang/eo-UY.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/eo-UY.ftl -------------------------------------------------------------------------------- /lang/es-ES.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/es-ES.ftl -------------------------------------------------------------------------------- /lang/fi-FI.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/fi-FI.ftl -------------------------------------------------------------------------------- /lang/fil-PH.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/fil-PH.ftl -------------------------------------------------------------------------------- /lang/fr-FR.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/fr-FR.ftl -------------------------------------------------------------------------------- /lang/it-IT.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/it-IT.ftl -------------------------------------------------------------------------------- /lang/ja-JP.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/ja-JP.ftl -------------------------------------------------------------------------------- /lang/ko-KR.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/ko-KR.ftl -------------------------------------------------------------------------------- /lang/nl-NL.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/nl-NL.ftl -------------------------------------------------------------------------------- /lang/no-NO.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/no-NO.ftl -------------------------------------------------------------------------------- /lang/pl-PL.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/pl-PL.ftl -------------------------------------------------------------------------------- /lang/pt-BR.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/pt-BR.ftl -------------------------------------------------------------------------------- /lang/ru-RU.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/ru-RU.ftl -------------------------------------------------------------------------------- /lang/sv-SE.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/sv-SE.ftl -------------------------------------------------------------------------------- /lang/th-TH.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/th-TH.ftl -------------------------------------------------------------------------------- /lang/tr-TR.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/tr-TR.ftl -------------------------------------------------------------------------------- /lang/uk-UA.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/uk-UA.ftl -------------------------------------------------------------------------------- /lang/vi-VN.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/vi-VN.ftl -------------------------------------------------------------------------------- /lang/zh-CN.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/zh-CN.ftl -------------------------------------------------------------------------------- /lang/zh-TW.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/lang/zh-TW.ftl -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 120 2 | -------------------------------------------------------------------------------- /src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/cli.rs -------------------------------------------------------------------------------- /src/cli/api.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/cli/api.rs -------------------------------------------------------------------------------- /src/cli/parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/cli/parse.rs -------------------------------------------------------------------------------- /src/cli/report.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/cli/report.rs -------------------------------------------------------------------------------- /src/cli/ui.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/cli/ui.rs -------------------------------------------------------------------------------- /src/cloud.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/cloud.rs -------------------------------------------------------------------------------- /src/gui.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui.rs -------------------------------------------------------------------------------- /src/gui/app.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/app.rs -------------------------------------------------------------------------------- /src/gui/badge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/badge.rs -------------------------------------------------------------------------------- /src/gui/button.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/button.rs -------------------------------------------------------------------------------- /src/gui/common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/common.rs -------------------------------------------------------------------------------- /src/gui/editor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/editor.rs -------------------------------------------------------------------------------- /src/gui/file_tree.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/file_tree.rs -------------------------------------------------------------------------------- /src/gui/font.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/font.rs -------------------------------------------------------------------------------- /src/gui/game_list.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/game_list.rs -------------------------------------------------------------------------------- /src/gui/icon.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/icon.rs -------------------------------------------------------------------------------- /src/gui/modal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/modal.rs -------------------------------------------------------------------------------- /src/gui/notification.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/notification.rs -------------------------------------------------------------------------------- /src/gui/popup_menu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/popup_menu.rs -------------------------------------------------------------------------------- /src/gui/screen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/screen.rs -------------------------------------------------------------------------------- /src/gui/search.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/search.rs -------------------------------------------------------------------------------- /src/gui/shortcuts.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/shortcuts.rs -------------------------------------------------------------------------------- /src/gui/style.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/style.rs -------------------------------------------------------------------------------- /src/gui/undoable.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/undoable.rs -------------------------------------------------------------------------------- /src/gui/widget.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/gui/widget.rs -------------------------------------------------------------------------------- /src/lang.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/lang.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/metadata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/metadata.rs -------------------------------------------------------------------------------- /src/path.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/path.rs -------------------------------------------------------------------------------- /src/prelude.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/prelude.rs -------------------------------------------------------------------------------- /src/resource.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/resource.rs -------------------------------------------------------------------------------- /src/resource/cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/resource/cache.rs -------------------------------------------------------------------------------- /src/resource/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/resource/config.rs -------------------------------------------------------------------------------- /src/resource/config/root.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/resource/config/root.rs -------------------------------------------------------------------------------- /src/resource/manifest.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/resource/manifest.rs -------------------------------------------------------------------------------- /src/scan.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan.rs -------------------------------------------------------------------------------- /src/scan/backup.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/backup.rs -------------------------------------------------------------------------------- /src/scan/change.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/change.rs -------------------------------------------------------------------------------- /src/scan/duplicate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/duplicate.rs -------------------------------------------------------------------------------- /src/scan/game_filter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/game_filter.rs -------------------------------------------------------------------------------- /src/scan/launchers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers.rs -------------------------------------------------------------------------------- /src/scan/launchers/generic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/generic.rs -------------------------------------------------------------------------------- /src/scan/launchers/heroic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/heroic.rs -------------------------------------------------------------------------------- /src/scan/launchers/heroic/gog.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/heroic/gog.rs -------------------------------------------------------------------------------- /src/scan/launchers/heroic/legendary.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/heroic/legendary.rs -------------------------------------------------------------------------------- /src/scan/launchers/heroic/nile.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/heroic/nile.rs -------------------------------------------------------------------------------- /src/scan/launchers/heroic/sideload.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/heroic/sideload.rs -------------------------------------------------------------------------------- /src/scan/launchers/legendary.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/legendary.rs -------------------------------------------------------------------------------- /src/scan/launchers/lutris.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/launchers/lutris.rs -------------------------------------------------------------------------------- /src/scan/layout.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/layout.rs -------------------------------------------------------------------------------- /src/scan/preview.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/preview.rs -------------------------------------------------------------------------------- /src/scan/registry.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/registry.rs -------------------------------------------------------------------------------- /src/scan/registry/win.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/registry/win.rs -------------------------------------------------------------------------------- /src/scan/saves.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/saves.rs -------------------------------------------------------------------------------- /src/scan/steam.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/steam.rs -------------------------------------------------------------------------------- /src/scan/title.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/scan/title.rs -------------------------------------------------------------------------------- /src/serialization.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/serialization.rs -------------------------------------------------------------------------------- /src/testing.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/testing.rs -------------------------------------------------------------------------------- /src/wrap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/wrap.rs -------------------------------------------------------------------------------- /src/wrap/heroic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/src/wrap/heroic.rs -------------------------------------------------------------------------------- /tasks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tasks.py -------------------------------------------------------------------------------- /tests/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | -------------------------------------------------------------------------------- /tests/backup/game1-zipped/mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/backup/game1-zipped/mapping.yaml -------------------------------------------------------------------------------- /tests/backup/game1-zipped/test.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/backup/game1-zipped/test.zip -------------------------------------------------------------------------------- /tests/backup/game1/drive-X/file1.txt: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /tests/backup/game1/drive-X/file2.txt: -------------------------------------------------------------------------------- 1 | .. -------------------------------------------------------------------------------- /tests/backup/game1/mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/backup/game1/mapping.yaml -------------------------------------------------------------------------------- /tests/backup/game3-renamed/mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/backup/game3-renamed/mapping.yaml -------------------------------------------------------------------------------- /tests/backup/game3-renamed/registry.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/backup/game3-renamed/registry.yaml -------------------------------------------------------------------------------- /tests/backup/ignored-invalid-mapping/mapping.yaml: -------------------------------------------------------------------------------- 1 | name: Ignored because file is invalid 2 | drives: [] 3 | -------------------------------------------------------------------------------- /tests/backup/ignored-no-mapping/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/backup/migrate-legacy-backup/drive-X/file1.txt: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /tests/backup/migrate-legacy-backup/mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/backup/migrate-legacy-backup/mapping.yaml -------------------------------------------------------------------------------- /tests/home/.config/xdgConfig.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/home/.local/share/xdgData.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/home/AppData/Local/winLocalAppData.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/home/AppData/Roaming/winAppData.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/home/Documents/winDocuments.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/home/data.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/launchers/heroic-gog-with-store-cache/GamesConfig/app-1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-gog-with-store-cache/GamesConfig/app-1.json -------------------------------------------------------------------------------- /tests/launchers/heroic-gog-with-store-cache/gog_store/installed.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-gog-with-store-cache/gog_store/installed.json -------------------------------------------------------------------------------- /tests/launchers/heroic-gog-with-store-cache/store_cache/gog_library.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-gog-with-store-cache/store_cache/gog_library.json -------------------------------------------------------------------------------- /tests/launchers/heroic-gog-without-store-cache/GamesConfig/app-1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-gog-without-store-cache/GamesConfig/app-1.json -------------------------------------------------------------------------------- /tests/launchers/heroic-gog-without-store-cache/gog_store/installed.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-gog-without-store-cache/gog_store/installed.json -------------------------------------------------------------------------------- /tests/launchers/heroic-gog-without-store-cache/gog_store/library.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-gog-without-store-cache/gog_store/library.json -------------------------------------------------------------------------------- /tests/launchers/heroic-legendary/GamesConfig/app-2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-legendary/GamesConfig/app-2.json -------------------------------------------------------------------------------- /tests/launchers/heroic-legendary/store_cache/legendary_library.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-legendary/store_cache/legendary_library.json -------------------------------------------------------------------------------- /tests/launchers/heroic-nile/GamesConfig/app-1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-nile/GamesConfig/app-1.json -------------------------------------------------------------------------------- /tests/launchers/heroic-nile/store_cache/nile_library.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-nile/store_cache/nile_library.json -------------------------------------------------------------------------------- /tests/launchers/heroic-sideload/GamesConfig/app-1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-sideload/GamesConfig/app-1.json -------------------------------------------------------------------------------- /tests/launchers/heroic-sideload/sideload_apps/library.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/heroic-sideload/sideload_apps/library.json -------------------------------------------------------------------------------- /tests/launchers/legendary/installed.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/legendary/installed.json -------------------------------------------------------------------------------- /tests/launchers/lutris-db/pga.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-db/pga.db -------------------------------------------------------------------------------- /tests/launchers/lutris-merged/games/windows-game-1683516078.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-merged/games/windows-game-1683516078.yaml -------------------------------------------------------------------------------- /tests/launchers/lutris-merged/games/windows-game-1683516079.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-merged/games/windows-game-1683516079.yaml -------------------------------------------------------------------------------- /tests/launchers/lutris-merged/pga.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-merged/pga.db -------------------------------------------------------------------------------- /tests/launchers/lutris-spec/games/windows-game.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-spec/games/windows-game.yaml -------------------------------------------------------------------------------- /tests/launchers/lutris-split/config/games/windows-game-1683516078.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-split/config/games/windows-game-1683516078.yaml -------------------------------------------------------------------------------- /tests/launchers/lutris-split/config/games/windows-game-1683516079.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-split/config/games/windows-game-1683516079.yaml -------------------------------------------------------------------------------- /tests/launchers/lutris-split/data/pga.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/launchers/lutris-split/data/pga.db -------------------------------------------------------------------------------- /tests/ludusavi.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtkennerly/ludusavi/HEAD/tests/ludusavi.reg -------------------------------------------------------------------------------- /tests/root-[not]-glob/game-[not]-glob/file1.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/root-[not]-glob/game-[not]-glob/file2.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/root1/game1/ignored.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/root1/game1/subdir/file2.txt: -------------------------------------------------------------------------------- 1 | .. -------------------------------------------------------------------------------- /tests/root2/game1/file1.txt: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /tests/root2/game2/file1.txt: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /tests/root3/game5/data/file1.txt: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /tests/root3/game_2/file1.txt: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /tests/wine-prefix/drive_c/users/anyone/data.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wine-prefix/user.reg: -------------------------------------------------------------------------------- 1 | [HKEY_CURRENT_USER\Software\Ludusavi] --------------------------------------------------------------------------------