Mercurial > hg > Members > kono > nitros9-code
view scripts/bndi @ 2401:7f39211c0b14
Makefile
author | boisy |
---|---|
date | Sun, 24 Jan 2010 17:25:54 +0000 |
parents | 0a302a23acaa |
children |
line wrap: on
line source
#!/usr/bin/perl # # BNDI - Build a NitrOS-9 Disk Image # # This script builds a NitrOS-9 disk image use IO::File; use POSIX qw(tmpnam); $NITROS9DIR = $ENV{'NITROS9DIR'}; $CLOUD9DIR = $ENV{'CLOUD9DIR'}; $DISTRO = "6809l2"; # Check for proper number of arguments $numargs = $#ARGV + 1; if ($numargs != 4) { print "Usage: bundi <bootlist> <tracklist> <diskname> <distro>\n"; exit; } $bootlist = $ARGV[0]; $tracklist = $ARGV[1]; $diskname = $ARGV[2]; $DISTRO = $ARGV[3]; printf("Building '%s' distribution onto '%s'\n", $DISTRO, $diskname); $os9_sectors = 4096; printf("Number of sectors: %d\n", $os9_sectors); print "########## PART I ##########\n"; print "# #\n"; print "# Assemble EVERYTHING! #\n"; print "# #\n"; print "#############################\n\n"; print "Step 1 - Making the ENTIRE NitrOS-9 Project (could take a while)...\n"; #system("cd $NITROS9DIR; make dsk>&/dev/null"); print "Step 2 - Making the HDB-DOS Product...\n"; system("cd $CLOUD9DIR/Products/HDB-DOS/Software; make dsk>&/dev/null"); print "Step 3 - Making the Ved Product...\n"; system("cd $ENV{'CLOUD9DIR'}/Products/Ved/Software; make dsk>&/dev/null"); print "########## PART II ##########\n"; print "# #\n"; print "# Prepare the Disk Image #\n"; print "# #\n"; print "#############################\n\n"; print "Step 1 - Format the disk and make the boot disk\n"; system("os9 format -qe -l$os9_sectors tmp.dsk"); # Read bootlist file and expand any variables open(FILE, "$bootlist") or die ("Unable to open $bootlist"); @bootarray = <FILE>; close(FILE); foreach $element (@bootarray) { if (($element =~ /^#/) || ($element =~ /^\*/)) { $element = ""; } else { $element =~ s/\$(\w+)/${$1}/g; $element =~ s/\s+$//; } } $bls = "@bootarray"; system("cat $bls>bootfile"); # Read tracklist file and expand any variables open(FILE, "$tracklist") or die ("Unable to open $tracklist"); @trackarray = <FILE>; close(FILE); foreach $element (@trackarray) { if (($element =~ /^#/) || ($element =~ /^\*/)) { $element = ""; } else { $element =~ s/\$(\w+)/${$1}/g; $element =~ s/\s+$//; } } $tls = "@trackarray"; system("cat $tls>trackfile"); system("os9 padrom 4608 trackfile"); system("os9 gen -b=bootfile -t=trackfile tmp.dsk>&/dev/null"); system("os9 copy -o=0 $NITROS9DIR/$DISTRO/modules/sysgo_dd tmp.dsk,sysgo"); system("os9 attr tmp.dsk,sysgo -epepr"); system("os9 dsave -e $NITROS9DIR/$DISTRO/nos9"."$DISTRO"."_80d.dsk, tmp.dsk, >&/dev/null"); system("os9 copy -o=0 $NITROS9DIR/3rdparty/p2mods/noice/calldbg tmp.dsk,cmds/calldbg"); system("os9 attr tmp.dsk,cmds/calldbg -epepr"); print "Step 3 - Put it all together\n"; system("mv tmp.dsk $diskname"); print "Ok, we're done! The file $diskname is now a fresh disk image.\n";