git @ Cat's Eye Technologies Funicular / master eg / FreeDOS-1.1 / Funicularfile
master

Tree @master (Download .tar.gz)

Funicularfile @masterraw · history · blame

PLATFORM="i386-qemu"
INSTALL_IMAGE='fd11src.iso'
INSTALL_IMAGE_URL='https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.1/official/fd11src.iso'
SETUP_IMAGE='setup.iso'
SYSTEM_IMAGE='hda.img'
DIST_IMAGE='a.img'

DISTFILES="
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/copying.dj
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/djdev205.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/faq230b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2/readme.1st
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/bnu2351b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gcc830b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gpp830b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/mak44b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2misc/csdpmi7b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/perl588b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/tar112abr2.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/gzip110b.zip
  https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/v2gnu/fil41br3.zip
  https://archive.org/download/msdos_TED3_shareware/TED3.zip

  https://www.tortall.net/projects/yasm/releases/yasm-1.2.0-dos.exe
  https://raw.githubusercontent.com/yasm/yasm/v1.2.0/BSD.txt

  https://www.lua.org/ftp/lua-5.2.2.tar.gz
  https://sourceforge.net/projects/dos2unix/files/dos2unix/7.4.0/d2u740pm.zip

  https://catseye.tc/distfiles/shelta-1.2-2014.0422.zip
  https://github.com/catseye/Illgol-Grand-Mal/archive/rel_16_tons_and_what_do_you_get.zip
  https://github.com/catseye/OpenZz/archive/refs/heads/1.0.4-4ce3.zip@ozz104c3.zip
  https://github.com/catseye/Zzrk/archive/refs/tags/rel_1_0_2016_0304.zip@zzrk2016.zip

  https://www.gnu.org/licenses/gpl-2.0.txt
"

if [ "x$DISTREPO_ROOT" = "x" ]; then
    DISTREPO_ROOT="https://github.com/"
fi
DISTREPOS="
  catseye/Befunge-93
  catseye/Maentwrog
  catseye/RUBE
"
ZIP_UNVERSIONED=True


name_map() {
    if [ "X$1" = "Xyasm-1.2.0-dos.exe" ]; then
        echo "yasm120.exe"
    elif [ "X$1" = "XBSD.txt" ]; then
        echo "yasmlcns.txt"
    elif [ "X$1" = "Xlua-5.2.2.tar.gz" ]; then
        echo "lua522.tgz"
    elif [ "X$1" = "Xshelta-1.2-2014.0422.zip" ]; then
        echo "shelta12.zip"
    elif [ "X$1" = "Xrel_16_tons_and_what_do_you_get.zip" ]; then
        echo "illgolgm.zip"
    elif [ "X$1" = "Xgpl-2.0.txt" ]; then
        echo "gpl20.txt"
    elif [ "X$1" = "XBefunge-93" ]; then
        echo "befung93"
    elif [ "X$1" = "XMaentwrog" ]; then
        echo "maentwrg"
    else
        echo $1
    fi
}


install_instructions() {
    cat <<EOF
*   select "Create Drive C:"
*   select "f" to start FDISK
*   FAT32 -- no
*   1 -- create DOS partition
*   1 -- create Primary DOS partition
*   Use maximum available size -- yes
*   Press Esc to continue
*   Press Esc to exit FDISK.  System will now restart...
*   select "Install to Hard Disk"
*   press 1 to start installing
*   select English or whatever
*   You need to format. -- yes ... proceed?  yes.
*   1 -- continue with installation
*   1 -- start installation
*   Enter, Enter, the above directories are correct, yes
*   just base and util should be enough, down-arrow to DONE
    *   N.B.! util is required for UPX!
*   proceed with installation -- yes
*   down-arrow to DONE
*   proceed with installation -- yes -- ...wait...
*   Press any key to continue
*   down-arrow to DONE
*   proceed with installation -- yes
*   Press any key to continue -- ...watch flickering...
*   What to do with the bootsector?  -- 1
*   select "Boot from system harddisk"
*   Hit Enter for the JEMMEX option, should be fine
*   viola, C:\\>.  You can now just run `shutdown`.
EOF
}

setup_instructions() {
    cat <<EOF
* Hit Enter for the JEMMEX option, should be fine
* When booted, run "D:\INSTDJGP"
* When it asks "replace lib/Perl5/Pod/perlmaco.pod?", type "A", Enter.
* THEN HIT ENTER AGAIN.  It's waiting silently for you.
* When finished, you may want to exit the emulator, run
  "funicular backup hda-djgpp", and start it again.
* run "D:\\INSTPLAT".  This will install some tools into "C:\\TOOLS".
EOF
}

setup_script() {
    #
    # This is an alternative to having some kind of "archive distrepos with what archiver?"
    # option that Funicular should arguably support instead.
    #
    cd distrepos
    for repo in *; do
        echo zip -r ../staging_area/$repo.zip $repo
        zip -r ../staging_area/$repo.zip $repo
        rm -f ../staging_area/$repo.tar.gz
    done
    cd ..
    if [ -d skel ]; then
        cp -Rp skel/* staging_area/
    fi
}

dist_instructions() {
    cat <<EOF
* To initialize the distribution floppy, run "INITFLOP".
* Enter "360", "720", or "1440" as appropriate.
* As explained in the script, it may take more than one attempt to format
  the image correctly, if it has never been used before.
* The result will be a generic, bootable FreeDOS floppy.  You may
  wish to make a backup copy of "a.img" to not need this step in future.
* To populate the floppy with a few basic things, run "POPUFLOP".

You now have a bootable floppy image with a few basic tools on it.

* To populate the floppy with a project distribution, run the "MAKEDIST.BAT"
  batchfile in the appropriate "SKEL" subdirectory.  For example, to make a
  Shelta distribution, run "SKEL\\SHELTA\\MAKEDIST".
EOF
}