mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 18:31:52 +00:00
* wip * remove bollard, add podman feature * fix error message parsing * fix subcommand * fix typo * use com.docker.network.bridge.name for podman * fix parse error * handle podman network interface nuance * add libyajl2 * use podman repos * manually add criu * do not manually require criu * remove docker images during cleanup stage * force removal * increase img size * Update startos-iso.yaml * don't remove docker
87 lines
2.2 KiB
Bash
Executable File
87 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
function partition_for () {
|
|
if [[ "$1" =~ [0-9]+$ ]]; then
|
|
echo "$1p$2"
|
|
else
|
|
echo "$1$2"
|
|
fi
|
|
}
|
|
|
|
VERSION=$(cat VERSION.txt)
|
|
ENVIRONMENT=$(cat ENVIRONMENT.txt)
|
|
GIT_HASH=$(cat GIT_HASH.txt | head -c 7)
|
|
DATE=$(date +%Y%m%d)
|
|
|
|
ROOT_PART_END=7217792
|
|
|
|
VERSION_FULL="$VERSION-$GIT_HASH"
|
|
|
|
if [ -n "$ENVIRONMENT" ]; then
|
|
VERSION_FULL="$VERSION_FULL~$ENVIRONMENT"
|
|
fi
|
|
|
|
TARGET_NAME=startos-${VERSION_FULL}-${DATE}_raspberrypi.img
|
|
TARGET_SIZE=$[($ROOT_PART_END+1)*512]
|
|
|
|
rm -f $TARGET_NAME
|
|
truncate -s $TARGET_SIZE $TARGET_NAME
|
|
(
|
|
echo o
|
|
echo x
|
|
echo i
|
|
echo "0xcb15ae4d"
|
|
echo r
|
|
echo n
|
|
echo p
|
|
echo 1
|
|
echo 2048
|
|
echo 526335
|
|
echo t
|
|
echo c
|
|
echo n
|
|
echo p
|
|
echo 2
|
|
echo 526336
|
|
echo $ROOT_PART_END
|
|
echo a
|
|
echo 1
|
|
echo w
|
|
) | fdisk $TARGET_NAME
|
|
OUTPUT_DEVICE=$(sudo losetup --show -fP $TARGET_NAME)
|
|
sudo mkfs.ext4 `partition_for ${OUTPUT_DEVICE} 2`
|
|
sudo mkfs.vfat `partition_for ${OUTPUT_DEVICE} 1`
|
|
|
|
TMPDIR=$(mktemp -d)
|
|
|
|
sudo mount `partition_for ${OUTPUT_DEVICE} 2` $TMPDIR
|
|
sudo mkdir $TMPDIR/boot
|
|
sudo mount `partition_for ${OUTPUT_DEVICE} 1` $TMPDIR/boot
|
|
sudo unsquashfs -f -d $TMPDIR startos.raspberrypi.squashfs
|
|
REAL_GIT_HASH=$(cat $TMPDIR/usr/lib/embassy/GIT_HASH.txt)
|
|
REAL_VERSION=$(cat $TMPDIR/usr/lib/embassy/VERSION.txt)
|
|
REAL_ENVIRONMENT=$(cat $TMPDIR/usr/lib/embassy/ENVIRONMENT.txt)
|
|
sudo sed -i 's| boot=embassy| init=/usr/lib/embassy/scripts/init_resize\.sh|' $TMPDIR/boot/cmdline.txt
|
|
sudo cp ./build/raspberrypi/fstab $TMPDIR/etc/
|
|
sudo cp ./build/raspberrypi/init_resize.sh $TMPDIR/usr/lib/embassy/scripts/init_resize.sh
|
|
sudo umount $TMPDIR/boot
|
|
sudo umount $TMPDIR
|
|
sudo losetup -d $OUTPUT_DEVICE
|
|
|
|
if [ "$ALLOW_VERSION_MISMATCH" != 1 ]; then
|
|
if [ "$(cat GIT_HASH.txt)" != "$REAL_GIT_HASH" ]; then
|
|
>&2 echo "startos.raspberrypi.squashfs GIT_HASH.txt mismatch"
|
|
>&2 echo "expected $REAL_GIT_HASH (dpkg) found $(cat GIT_HASH.txt) (repo)"
|
|
exit 1
|
|
fi
|
|
if [ "$(cat VERSION.txt)" != "$REAL_VERSION" ]; then
|
|
>&2 echo "startos.raspberrypi.squashfs VERSION.txt mismatch"
|
|
exit 1
|
|
fi
|
|
if [ "$(cat ENVIRONMENT.txt)" != "$REAL_ENVIRONMENT" ]; then
|
|
>&2 echo "startos.raspberrypi.squashfs ENVIRONMENT.txt mismatch"
|
|
exit 1
|
|
fi
|
|
fi |