oaksisfolks / steam-mv

Move Steam applications with large files to another install folder.
GNU General Public License v3.0
16 stars 2 forks source link

"Anno 1404: Venice" gets cut to "Anno 1404" #3

Open zebh opened 5 years ago

zebh commented 5 years ago

Found a bug when I tried to move "Anno 1404" and it's expansion "Anno 1404: Venice". It seems that somewhere it cuts off the ": Venice" part and thus get's confused.

Moving Anno 1404: Venice to /mnt/games/steam... Traceback (most recent call last): File "./steam-mv", line 135, in <module> move(installdir_src, installdir_dst) File "/usr/lib/python3.7/shutil.py", line 561, in move raise Error("Destination path '%s' already exists" % real_dst) shutil.Error: Destination path '/mnt/games/steam/steamapps/common/Anno 1404' already exists

oaksisfolks commented 5 years ago

Hmm... can you give me a copy of the manifest for both games? They are located in the "steamapps" folder that they are installed in. They are named appmanifest_XXXXXX.acf. You're going to have to grep them to find which ones are which. It's strange, because I specifically tested Wolfenstein: The New Order, and Wolfenstein: The Old Blood. Both work. So, I don't think it is a problem with the colons.

zebh commented 5 years ago

Here you go, sorry about the delay.

appmanifest_33250.txt appmanifest_33350.txt

oaksisfolks commented 5 years ago

That's really strange. They have the same install directory according to those manifests. I'll have to dig a little deeper into Steam's guts. The output of ls -R "/path/to/Steam/steamapps/common/Anno 1404" would be helpful.

zebh commented 5 years ago

Hm.. that is a good observation, not sure how I missed that. Steam seems to treat them separately based on having two manifests and appearing twice in my library? But looking closer they are indeed installed into the same folder. So it seems I just made a few faulty assumptions.

That pretty much solves the mystery for this particular title. Not sure how that special case could be handled in your program (not even sure if it should be, to be honest).

You can see the somewhat confused state of this folder with base game and addon files mixed here and there (cleverly named *_addon*): ls_anno.txt

oaksisfolks commented 5 years ago

I can definitely work this case into the script. Just have to check for matching install directories, and move both manifests. Everything beyond that is more or less in binary files that I can't work around. Can't say when I'll get to it, but hopefully this weekend I can figure something out.