nothub / mrpack-install

Modrinth Modpack server deployment
https://pkg.go.dev/github.com/nothub/mrpack-install
MIT License
128 stars 9 forks source link

mrpack spec does not define path separators #25

Closed CheatingBoy6890 closed 11 months ago

CheatingBoy6890 commented 11 months ago

I wanted to install a pack with mrpack-install on a raspberrypi, but sadly the downloaded mods are named mods\modname.jar in are located in the server's root directory not in the mods one. I think this occures because mrpack-install isn't noticing that it is running in a linux enviroment and uses \ instead of / so the files are named instead of beeing moved.

nothub commented 11 months ago

Oh that sounds interesting. Can you share the exact commands you executed?

CheatingBoy6890 commented 11 months ago

I executed mrpack-install https://cdn.modrinth.com/data/xldzprsQ/versions/MqYT8IQ2/Create%20Extra%20Full%201.2.0.mrpack and the output was:

Downloading mrpack file from [https://cdn.modrinth.com/data/xldzprsQ/versions/MqYT8IQ2/Create%20Extra%20Full%201.2.0.mrpack]
Processing mrpack file mc/Create Extra Full 1.2.0.mrpack
Installing: Create Extra Full
Flavor dependencies: {Minecraft:1.19.2 Fabric:0.14.22 Quilt: Forge:}
Server file not present, downloading...
(Point --server-dir and --server-file flags to an existing server file to skip this step.)
Server jar downloaded to: mc/fabric-server-mc.1.19.2-loader.0.14.22-launcher.0.11.2.jar
Downloading 80 dependencies...
Downloaded: mc/mods\antighost-1.19.1-fabric0.58.5-1.1.5.jar
Downloaded: mc/mods\phosphor-fabric-mc1.19.x-0.8.1.jar
Downloaded: mc/mods\Debugify-2.8.0.jar
Downloaded: mc/mods\architectury-6.5.85-fabric.jar
Downloaded: mc/mods\NoChatReports-FABRIC-1.19.2-v1.13.12.jar
Downloaded: mc/mods\wthit-fabric-5.18.0.jar
Downloaded: mc/mods\shulkerboxtooltip-fabric-3.2.2+1.19.2.jar
Downloaded: mc/mods\clickthrough-1.19.1-fabric0.58.5-0.4.jar
Downloaded: mc/mods\letmedespawn-1.18.x-1.19.x-fabric-1.0.2.jar
Downloaded: mc/mods\journeymap-1.19.2-5.9.7-fabric.jar
Downloaded: mc/mods\voicechat-fabric-1.19.2-2.4.16.jar
Downloaded: mc/mods\advancementinfo-1.19.1-fabric0.58.5-1.3.1.jar
Downloaded: mc/mods\smoothboot-fabric-1.19-1.7.1.jar
Downloaded: mc/mods\soundphysics-fabric-1.19.2-1.0.18.jar
Downloaded: mc/mods\moonlight-1.19.2-2.2.43-fabric.jar
Downloaded: mc/mods\YetAnotherConfigLib-2.2.0-for-1.19.2.jar
Downloaded: mc/mods\lithium-fabric-mc1.19.2-0.11.1.jar
Downloaded: mc/mods\lazydfu-0.1.3.jar
Downloaded: mc/mods\Iceberg-1.19.1-fabric-1.0.46.jar
Downloaded: mc/mods\AdvancementPlaques-1.19.2-fabric-1.4.6.jar
Downloaded: mc/mods\Adorn-3.9.1+1.19.2-fabric.jar
Downloaded: mc/mods\fabric-language-kotlin-1.10.8+kotlin.1.9.0.jar
Downloaded: mc/mods\cloth-config-8.3.103-fabric.jar
Downloaded: mc/mods\fabric-api-0.76.0+1.19.2.jar
Downloaded: mc/mods\badpackets-fabric-0.2.1.jar
Downloaded: mc/mods\appleskin-fabric-mc1.19-2.4.1.jar
Downloaded: mc/mods\creategoggles-1.19.2-0.5.5.c-[FABRIC].jar
Downloaded: mc/mods\CreativeCore_FABRIC_v2.9.4_mc1.19.2.jar
Downloaded: mc/mods\create_enchantment_industry-1.0.0.jar
Downloaded: mc/mods\krypton-0.2.1.jar
Downloaded: mc/mods\emotecraft-for-MC1.19.2-2.2.7-b.build.50-fabric.jar
Downloaded: mc/mods\fabric-carpet-1.19.2-1.4.84+v221018.jar
Downloaded: mc/mods\midnightlib-fabric-1.0.0.jar
Downloaded: mc/mods\supplementaries-1.19.2-2.3.20-fabric.jar
Downloaded: mc/mods\simple-rpc-fabric-1.19.x-3.2.3.jar
Downloaded: mc/mods\memoryleakfix-fabric-1.17+-1.1.1.jar
Downloaded: mc/mods\create-fabric-0.5.1-b-build.1089+mc1.19.2.jar
Downloaded: mc/mods\jei-1.19.2-fabric-11.6.0.1016.jar
Downloaded: mc/mods\spark-1.10.37-fabric.jar
Downloaded: mc/mods\betterstats-2.9.3+1.19.2.jar
Extracting overrides...
Override file extracted: mc/config/adaptive-tooltips.json
Override file extracted: mc/config/Adorn.json5
Override file extracted: mc/config/advancementinfo.json5
Override file extracted: mc/config/advancementplaques-common.toml
Override file extracted: mc/config/appleskin.json5
Override file extracted: mc/config/betterf3.json
Override file extracted: mc/config/blur.json
Override file extracted: mc/config/bobby.conf
Override file extracted: mc/config/capes.json5
Override file extracted: mc/config/carpet/default_carpet.conf
Override file extracted: mc/config/chat_heads.json5
Override file extracted: mc/config/citresewn-defaults.json
Override file extracted: mc/config/citresewn.json
Override file extracted: mc/config/clickthrough.json
Override file extracted: mc/config/continuity.json
Override file extracted: mc/config/create-client.toml
Override file extracted: mc/config/create-common.toml
Override file extracted: mc/config/createdeco-client.toml
Override file extracted: mc/config/createdeco-common.toml
Override file extracted: mc/config/creategoggles-client.toml
Override file extracted: mc/config/creategoggles-common.toml
Override file extracted: mc/config/crowdin.txt
Override file extracted: mc/config/cull-less-leaves.json
Override file extracted: mc/config/dashloader.json
Override file extracted: mc/config/debugify-descriptions.json
Override file extracted: mc/config/debugify.json
Override file extracted: mc/config/dynamicfps.toml
Override file extracted: mc/config/emotecraft.json
Override file extracted: mc/config/emotecraft_emote_map.json
Override file extracted: mc/config/enhanced_bes.properties
Override file extracted: mc/config/entityculling.json
Override file extracted: mc/config/entity_model_features.json
Override file extracted: mc/config/entity_texture_features.json
Override file extracted: mc/config/extrasounds.cache
Override file extracted: mc/config/fabric/indigo-renderer.properties
Override file extracted: mc/config/fabrishot.properties
Override file extracted: mc/config/fastquit-config.txt
Override file extracted: mc/config/flywheel.json
Override file extracted: mc/config/indium-renderer.properties
Override file extracted: mc/config/inventoryprofilesnext/integrationHints/exampleIntegrationHints.json
Override file extracted: mc/config/inventoryprofilesnext/inventoryprofiles.json
Override file extracted: mc/config/inventoryprofilesnext/mc.insomnia-game.ru/prev-villager-trading-config.json
Override file extracted: mc/config/inventoryprofilesnext/mc.insomnia-game.ru/villager-trading-config.json
Override file extracted: mc/config/inventoryprofilesnext/New World/prev-villager-trading-config.json
Override file extracted: mc/config/inventoryprofilesnext/New World/villager-trading-config.json
Override file extracted: mc/config/inventoryprofilesnext/Новый мир/prev-villager-trading-config.json
Override file extracted: mc/config/inventoryprofilesnext/Новый мир/villager-trading-config.json
Override file extracted: mc/config/iris.properties
Override file extracted: mc/config/isxander-main-menu-credits.json
Override file extracted: mc/config/jei/blacklist.cfg
Override file extracted: mc/config/jei/ingredient-list-mod-sort-order.ini
Override file extracted: mc/config/jei/ingredient-list-type-sort-order.ini
Override file extracted: mc/config/jei/jei-client.ini
Override file extracted: mc/config/jei/jei-colors.ini
Override file extracted: mc/config/jei/jei-debug.ini
Override file extracted: mc/config/jei/jei-mod-id-format.ini
Override file extracted: mc/config/jei/recipe-category-sort-order.ini
Override file extracted: mc/config/lambdynlights.toml
Override file extracted: mc/config/languagereload.json
Override file extracted: mc/config/libgui.json5
Override file extracted: mc/config/litematica/litematica_mc.insomnia-game.ru.json
Override file extracted: mc/config/litematica/litematica_mc.insomnia-game.ru_dim_minecraft_overworld.json
Override file extracted: mc/config/litematica/litematica_new_world.json
Override file extracted: mc/config/litematica/litematica_new_world_dim_minecraft_overworld.json
Override file extracted: mc/config/litematica/litematica__________.json
Override file extracted: mc/config/litematica/litematica___________dim_minecraft_overworld.json
Override file extracted: mc/config/litematica.json
Override file extracted: mc/config/lithium.properties
Override file extracted: mc/config/malilib.json
Override file extracted: mc/config/midnightlib.json
Override file extracted: mc/config/modmenu.json
Override file extracted: mc/config/MouseTweaks.cfg
Override file extracted: mc/config/NoChatReports/NCR-Client.json
Override file extracted: mc/config/NoChatReports/NCR-Common.json
Override file extracted: mc/config/NoChatReports/NCR-Encryption.json
Override file extracted: mc/config/NoChatReports/NCR-ServerWhitelist.json
Override file extracted: mc/config/NoChatReports/README.md
Override file extracted: mc/config/notenoughanimations.json
Override file extracted: mc/config/replaymod.json
Override file extracted: mc/config/rrp.properties
Override file extracted: mc/config/simple-rpc/server-entries.toml
Override file extracted: mc/config/simple-rpc/simple-rpc-replaymod.toml
Override file extracted: mc/config/simple-rpc/simple-rpc.toml
Override file extracted: mc/config/skinlayers.json
Override file extracted: mc/config/smoothboot.json
Override file extracted: mc/config/sodium-extra-options.json
Override file extracted: mc/config/sodium-extra.properties
Override file extracted: mc/config/sodium-mixins.properties
Override file extracted: mc/config/sodium-options.json
Override file extracted: mc/config/sound_physics_remastered/occlusion.properties
Override file extracted: mc/config/sound_physics_remastered/reflectivity.properties
Override file extracted: mc/config/sound_physics_remastered/soundphysics.properties
Override file extracted: mc/config/spark/config.json
Override file extracted: mc/config/stendhal/stendhal.properties
Override file extracted: mc/config/supplementaries-client.json
Override file extracted: mc/config/supplementaries-common.json
Override file extracted: mc/config/tr7zwDonorSettings.json
Override file extracted: mc/config/visuality.json
Override file extracted: mc/config/voicechat/translations.properties
Override file extracted: mc/config/voicechat/username-cache.json
Override file extracted: mc/config/voicechat/voicechat-client.properties
Override file extracted: mc/config/voicechat/voicechat-server.properties
Override file extracted: mc/config/waila/blacklist.json
Override file extracted: mc/config/waila/extra/energy_blacklist.json
Override file extracted: mc/config/waila/extra/fluid_blacklist.json
Override file extracted: mc/config/waila/extra/item_blacklist.json
Override file extracted: mc/config/waila/extra/progress_blacklist.json
Override file extracted: mc/config/waila/waila.json
Override file extracted: mc/config/waila/waila_plugins.json
Override file extracted: mc/config/xaerominimap.txt
Override file extracted: mc/config/xaerominimap_entities.json
Override file extracted: mc/config/xaeropatreon.txt
Override file extracted: mc/config/xaeroworldmap.txt
Override file extracted: mc/config/zoomify.json
Override file extracted: mc/mods/Create_Deco_Casing_3.0.0_1.19_Fabric.jar
Override file extracted: mc/mods/litematica-fabric-1.19.2-0.12.7.jar
Override file extracted: mc/mods/malilib-fabric-1.19.2-0.13.0.jar
Override file extracted: mc/options.txt
Done :) Have a nice day ✌️

In the mc directory the ls command shows:

 fabric-server-mc.1.19.2-loader.0.14.22-launcher.0.11.2.jar  'mods\cloth-config-8.3.103-fabric.jar'                      'mods\journeymap-1.19.2-5.9.7-fabric.jar'           'mods\smoothboot-fabric-1.19-1.7.1.jar'
 modpack.json                                                'mods\create_enchantment_industry-1.0.0.jar'                'mods\krypton-0.2.1.jar'                            'mods\soundphysics-fabric-1.19.2-1.0.18.jar'
 mods                                                        'mods\create-fabric-0.5.1-b-build.1089+mc1.19.2.jar'        'mods\lazydfu-0.1.3.jar'                            'mods\spark-1.10.37-fabric.jar'
'mods\Adorn-3.9.1+1.19.2-fabric.jar'                         'mods\creategoggles-1.19.2-0.5.5.c-[FABRIC].jar'            'mods\letmedespawn-1.18.x-1.19.x-fabric-1.0.2.jar'  'mods\supplementaries-1.19.2-2.3.20-fabric.jar'
'mods\advancementinfo-1.19.1-fabric0.58.5-1.3.1.jar'         'mods\CreativeCore_FABRIC_v2.9.4_mc1.19.2.jar'              'mods\lithium-fabric-mc1.19.2-0.11.1.jar'           'mods\voicechat-fabric-1.19.2-2.4.16.jar'
'mods\AdvancementPlaques-1.19.2-fabric-1.4.6.jar'            'mods\Debugify-2.8.0.jar'                                   'mods\memoryleakfix-fabric-1.17+-1.1.1.jar'         'mods\wthit-fabric-5.18.0.jar'
'mods\antighost-1.19.1-fabric0.58.5-1.1.5.jar'               'mods\emotecraft-for-MC1.19.2-2.2.7-b.build.50-fabric.jar'  'mods\midnightlib-fabric-1.0.0.jar'                 'mods\YetAnotherConfigLib-2.2.0-for-1.19.2.jar'
'mods\appleskin-fabric-mc1.19-2.4.1.jar'                     'mods\fabric-api-0.76.0+1.19.2.jar'                         'mods\moonlight-1.19.2-2.2.43-fabric.jar'            options.txt
'mods\architectury-6.5.85-fabric.jar'                        'mods\fabric-carpet-1.19.2-1.4.84+v221018.jar'              'mods\NoChatReports-FABRIC-1.19.2-v1.13.12.jar'
'mods\badpackets-fabric-0.2.1.jar'                           'mods\fabric-language-kotlin-1.10.8+kotlin.1.9.0.jar'       'mods\phosphor-fabric-mc1.19.x-0.8.1.jar'
'mods\betterstats-2.9.3+1.19.2.jar'                          'mods\Iceberg-1.19.1-fabric-1.0.46.jar'                     'mods\shulkerboxtooltip-fabric-3.2.2+1.19.2.jar'

Only 3 mods are the the right directory: Create_Deco, Litematica and Malib. Thanks for your quick reply.

nothub commented 11 months ago

The modpacks path format for the mod downloads is causing your issues.

What I did to verify this was downloading the .mrpack file in question: https://cdn.modrinth.com/data/xldzprsQ/versions/MqYT8IQ2/Create%20Extra%20Full%201.2.0.mrpack

Then I just opened the file with an archive manager (.mrpack files are zip archives). From the archive, unpack and view the file modrinth.index.json, it contains a list of files to be downloaded.

The mods in this archive have path like this: mods\\journeymap-1.19.2-5.9.7-fabric.jar

The mrpack format does not contain specifics about the local file path for mods. I have informed the modrinth people about the issue with the path definition in the past but there was not much of a reaction. https://github.com/modrinth/docs/issues/85

As a workaround, there could be a check for transforming the \\ path separator to a sane / path separator but I would rather not have to do this. I gonna try to find a nice solution in the next release.

nothub commented 11 months ago

I have pushed a patch that replaces all \\ path separators in the files path with the imho better choice / path separator. New release with patch is: 0.16.8

nothub commented 11 months ago

Related discussion about format change: https://github.com/orgs/modrinth/discussions/45

CheatingBoy6890 commented 11 months ago

Ok thanks.