diff --git a/README.md b/README.md index 1eebbfce..0cf81db8 100644 --- a/README.md +++ b/README.md @@ -86,8 +86,6 @@ Tools must implement the following in addition to respecting the schema: * When a path identifies a folder, the backup includes all of its files and subdirectories recursively. * When backing up registry keys, the backup includes all sub-keys recursively. -* Relative paths must be resolved relative to the location of the manifest file. - This is mainly relevant for secondary manifests. * If a tool supports secondary manifests, they must be automatically detected when they are named `.ludusavi.yaml` and located directly in ``. For example, a Steam game's secondary manifest would be `/steamapps/common//.ludusavi.yaml`. @@ -106,15 +104,17 @@ Tools may also: and it may in fact occur on other operating systems as well. * Reject/ignore recursive aliases or set a recursion limit. The primary manifest will never contain a recursive alias. +* Reject/ignore relative paths in the `files` mapping + (i.e., paths starting with `./` or `../`). + The primary manifest will never contain relative paths. For authors of secondary manifests bundled with games: * If present, the secondary manifest must be located directly in the game's install folder (not a subfolder), and the file name must be `.ludusavi.yaml`. -* For clarity and consistency with the primary manifest, - you are encouraged to use `` instead of relative paths. - For example, prefer `/save.dat` instead of `./save.dat`, - and prefer `/../parent` instead of `../parent`. +* You must use `` instead of relative paths. + For example, use `/save.dat` instead of `./save.dat`, + and use `/../parent` instead of `../parent`. The latest version of the primary manifest can be downloaded from https://raw.githubusercontent.com/mtkennerly/ludusavi-manifest/master/data/manifest.yaml . diff --git a/data/manifest.yaml b/data/manifest.yaml index 91cdcb0a..03acb907 100644 --- a/data/manifest.yaml +++ b/data/manifest.yaml @@ -94817,21 +94817,6 @@ Celestial Breach: steam: id: 547970 Celestial Command: - files: - "./Celestial Command/Saves": - tags: - - save - when: - - os: windows - - os: mac - - os: linux - "./Celestial Command/Saves/GameSettings.settings": - tags: - - config - when: - - os: windows - - os: mac - - os: linux installDir: Celestial Command: {} launch: @@ -358724,11 +358709,6 @@ Mr. Shadow: id: 543270 Mr. Shifty: files: - "./Library/Preferences/unity.Team Shifty.Mr Shifty.plist": - tags: - - save - when: - - os: mac "/.config/unity3d/Team Shifty/Mr Shifty": tags: - save @@ -387372,17 +387352,6 @@ Ongaku: id: 360990 Oni: files: - "./persist.dat": - tags: - - save - when: - - os: windows - - os: mac - "./persist.dat, ./key_config.txt, ~/Library/Preferences/com.godgames.oni.plist": - tags: - - config - when: - - os: mac "/AE/key_config.txt": tags: - config @@ -515060,11 +515029,6 @@ Startopia: id: 243040 Startup Company: files: - "./StartupCompany": - tags: - - save - when: - - os: linux "/Library/Application Support/Startup Company/SaveData": tags: - save diff --git a/data/missing.md b/data/missing.md index b987441a..0d08c555 100644 --- a/data/missing.md +++ b/data/missing.md @@ -5380,6 +5380,7 @@ * [Ceggtcher VR](https://www.pcgamingwiki.com/wiki/?curid=41470) * [Celestial](https://www.pcgamingwiki.com/wiki/?curid=144911) * [Celestial Breach](https://www.pcgamingwiki.com/wiki/?curid=52422) +* [Celestial Command](https://www.pcgamingwiki.com/wiki/?curid=49279) * [Celestial Creator](https://www.pcgamingwiki.com/wiki/?curid=64554) * [Celestial Crossing](https://www.pcgamingwiki.com/wiki/?curid=55738) * [Celestial Hacker Girl Jessica](https://www.pcgamingwiki.com/wiki/?curid=98514) diff --git a/src/wiki.rs b/src/wiki.rs index bd57912e..1db070b6 100644 --- a/src/wiki.rs +++ b/src/wiki.rs @@ -706,7 +706,11 @@ impl WikiPath { } pub fn usable(&self) -> bool { - !self.composite.is_empty() && !self.irregular() && !self.too_broad() + !self.composite.is_empty() + && !self.irregular() + && !self.too_broad() + && !self.composite.starts_with("./") + && !self.composite.starts_with("../") } }