aboutsummaryrefslogtreecommitdiff
path: root/build.sh
blob: 8ee46a5b8b1a8f4dedaaba7560d9b905b669edca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh
set -ex
export BUILDAH_LAYERS=true
sudo=sudo
[ -n "$(command -v doas)" ] && [ -x $(command -v doas) ] && sudo=doas
docker=docker
[ -n "$(command -v podman)" ] && [ -x "$(command -v podman)" ] && docker=podman

bin_only=false
no_plat=false
while [ $# -gt 0 ] ; do case $1 in
	-bin-only) bin_only=true ; shift ;;
	-no-platform) no_plat=true ; shift ;;
	*) echo "bad arg: '$1'" ; exit 2 ;;
esac ; done

simh_url="https://github.com/simh/simh/archive/master.zip"
simh_archive="./simh.zip"
if ! [ -e "$simh_archive" ] ; then
	wget -O "$simh_archive" "$simh_url"
fi

$docker build --platform=i386 -t unixv4 .
$docker run --name unixv4emulator --entrypoint=/bin/true --replace unixv4
$docker export unixv4emulator > img.tar
$docker container rm unixv4emulator
tar --strip-components 2 -xf img.tar usr/bin/pdp11
$bin_only && exit 0
truncate -s 12M disk.img
$sudo kpartx -av disk.img
$sudo mkfs.ext2 /dev/loop0
$sudo mount /dev/loop0 /mnt
$sudo tar -C /mnt -xpvf img.tar
$sudo umount /mnt
$sudo kpartx -dv disk.img