Installer mortville-manor-dos

files:
- game_files: https://www.lankhor.net/jeux/jeu/jeu15-pc.zip
- game_manual: https://www.lankhor.net/jeux/manuel/manuel15-1.pdf
game:
  main_file: $GAMEDIR/dosbox.conf
installer:
- extract:
    dst: $CACHE
    file: game_files
- input_menu:
    description: 'Choose the game''s language:'
    id: LANG
    options:
    - fr: French
    - de: German
    preselect: fr
- execute:
    command: cd "$CACHE" ; python3 -c 'import sys,zipfile,pathlib,shutil; z=zipfile.ZipFile(sys.argv[1]);
      d=pathlib.Path(sys.argv[2]); [(lambda n,i:(d/n).parent.mkdir(parents=True,exist_ok=True)
      or shutil.copyfileobj(z.open(i),open(d/n,"wb")))(pathlib.Path(i.filename.replace("\\","/")),i)
      for i in z.infolist() if not i.is_dir()]' $game_files .; mv "version 1" fr;
      mv "version 4" de ;
- merge:
    dst: $GAMEDIR/C/mm
    src: $CACHE/$INPUT_LANG
- merge:
    dst: $GAMEDIR/C/mm/manual
    src: game_manual
- write_file:
    content: '[autoexec]

      @echo off

      mount c C

      c:

      cd mm

      mort

      exit'
    file: $GAMEDIR/dosbox.conf
description: Play "Mortville Manor" DOS edition on Linux!
game_slug: mortville-manor
gogslug: ''
humblestoreid: ''
installer_slug: mortville-manor-dos
name: Mortville Manor
notes: '- During installation, you will be able to choose between playing game in
  French (default) or German language'
runner: dosbox
script:
  files:
  - game_files: https://www.lankhor.net/jeux/jeu/jeu15-pc.zip
  - game_manual: https://www.lankhor.net/jeux/manuel/manuel15-1.pdf
  game:
    main_file: $GAMEDIR/dosbox.conf
  installer:
  - extract:
      dst: $CACHE
      file: game_files
  - input_menu:
      description: 'Choose the game''s language:'
      id: LANG
      options:
      - fr: French
      - de: German
      preselect: fr
  - execute:
      command: cd "$CACHE" ; python3 -c 'import sys,zipfile,pathlib,shutil; z=zipfile.ZipFile(sys.argv[1]);
        d=pathlib.Path(sys.argv[2]); [(lambda n,i:(d/n).parent.mkdir(parents=True,exist_ok=True)
        or shutil.copyfileobj(z.open(i),open(d/n,"wb")))(pathlib.Path(i.filename.replace("\\","/")),i)
        for i in z.infolist() if not i.is_dir()]' $game_files .; mv "version 1" fr;
        mv "version 4" de ;
  - merge:
      dst: $GAMEDIR/C/mm
      src: $CACHE/$INPUT_LANG
  - merge:
      dst: $GAMEDIR/C/mm/manual
      src: game_manual
  - write_file:
      content: '[autoexec]

        @echo off

        mount c C

        c:

        cd mm

        mort

        exit'
      file: $GAMEDIR/dosbox.conf
slug: mortville-manor-dos
steamid: null
version: DOS
year: 1987
{
  "game_slug": "mortville-manor",
  "version": "DOS",
  "description": "Play \"Mortville Manor\" DOS edition on Linux!",
  "notes": "- During installation, you will be able to choose between playing game in French (default) or German language",
  "name": "Mortville Manor",
  "year": 1987,
  "steamid": null,
  "gogslug": "",
  "humblestoreid": "",
  "runner": "dosbox",
  "slug": "mortville-manor-dos",
  "installer_slug": "mortville-manor-dos",
  "script": {
    "files": [
      {
        "game_files": "https://www.lankhor.net/jeux/jeu/jeu15-pc.zip"
      },
      {
        "game_manual": "https://www.lankhor.net/jeux/manuel/manuel15-1.pdf"
      }
    ],
    "game": {
      "main_file": "$GAMEDIR/dosbox.conf"
    },
    "installer": [
      {
        "extract": {
          "dst": "$CACHE",
          "file": "game_files"
        }
      },
      {
        "input_menu": {
          "description": "Choose the game's language:",
          "id": "LANG",
          "options": [
            {
              "fr": "French"
            },
            {
              "de": "German"
            }
          ],
          "preselect": "fr"
        }
      },
      {
        "execute": {
          "command": "cd \"$CACHE\" ; python3 -c 'import sys,zipfile,pathlib,shutil; z=zipfile.ZipFile(sys.argv[1]); d=pathlib.Path(sys.argv[2]); [(lambda n,i:(d/n).parent.mkdir(parents=True,exist_ok=True) or shutil.copyfileobj(z.open(i),open(d/n,\"wb\")))(pathlib.Path(i.filename.replace(\"\\\\\",\"/\")),i) for i in z.infolist() if not i.is_dir()]' $game_files .; mv \"version 1\" fr; mv \"version 4\" de ;"
        }
      },
      {
        "merge": {
          "dst": "$GAMEDIR/C/mm",
          "src": "$CACHE/$INPUT_LANG"
        }
      },
      {
        "merge": {
          "dst": "$GAMEDIR/C/mm/manual",
          "src": "game_manual"
        }
      },
      {
        "write_file": {
          "content": "[autoexec]\n@echo off\nmount c C\nc:\ncd mm\nmort\nexit",
          "file": "$GAMEDIR/dosbox.conf"
        }
      }
    ]
  }
}
Back to game