summaryrefslogtreecommitdiffstats
path: root/ship/src
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2013-11-12 14:43:41 +0100
committermakefu <github@syntax-fehler.de>2013-11-12 14:43:41 +0100
commit8ebba4db20b8127e57490eeea95d50d158dc69dd (patch)
treea076aa4f20314df1f344d036d6788393d41d0ccb /ship/src
parent235cfb673d84dc151aa502f854e5daaf4487feb8 (diff)
ship: add remaster_iso
Diffstat (limited to 'ship/src')
-rwxr-xr-xship/src/remaster_iso64
1 files changed, 64 insertions, 0 deletions
diff --git a/ship/src/remaster_iso b/ship/src/remaster_iso
new file mode 100755
index 00000000..a10034c9
--- /dev/null
+++ b/ship/src/remaster_iso
@@ -0,0 +1,64 @@
+#!/bin/sh
+#@include core
+set -efu
+isofile=${1:-archlinux-2013.06.01-dual.iso}
+outfile=$(basename ${isofile%.iso}.krebs.iso)
+info "outfile will be at $outfile"
+bdir=${bdir:-$HOME/build/arch}
+isodir=$bdir/iso
+isomnt=$bdir/isomount
+rootdir=$bdir/root
+outdir=$bdir/out
+info "bdir is at $bdir"
+[ ! -e "$isofile" ] && die "$isofile does not exist,bailing out"
+esudo "$@"
+
+
+#punani install genisoimage
+
+
+info "cleanup root dir"
+rm -rf $bdir
+mkdir -p $isomnt $rootdir
+info "mounting isofile ($isofile)"
+if is_root;then
+ mount -t iso9660 -o loop,ro $isofile $isomnt
+else
+ error "we are not root enough to mount the iso. Bailing Out"
+ exit 1
+
+fi
+defer "info 'unmounting $isomnt';umount $isomnt"
+
+info "copying from '$isomnt' to '$isodir'"
+cp -a "$isomnt" "$isodir"
+defer "info 'removing $isodir';rm -rf $isodir"
+info "extracting root-image squashfs"
+# we will not touch the kernel ... yet
+
+for arch in x86_64 i686;do
+ info "unpacking $isomnt/arch/$arch/root-image.fs.sfs"
+ mkdir -p "$outdir/$arch"
+ defer "info 'removing $outdir/$arch';rm -rf $outdir/$arch"
+ mkdir -p "$rootdir/$arch"
+ defer "info 'removing $rootdir/$arch';rm -rf $rootdir/$arch"
+ unsquashfs -f -d "$outdir/$arch" "$isodir/arch/$arch/root-image.fs.sfs"
+
+ mount "$outdir/$arch/root-image.fs" "$rootdir/$arch"
+ defer "info 'unmounting $rootdir/$arch';umount $rootdir/$arch"
+
+ info "Starting of the rootdir verkrepelung"
+ # do the magic here
+ arch-chroot $rootdir/$arch <<EOF
+ uname -a
+EOF
+ info "creating squashfs at $isodir/arch/$arch/root-image.fs.sfs"
+ mksquashfs "$outdir/$arch/root-image.fs" "$isodir/arch/$arch/root-image.fs.sfs" -noappend
+done
+
+info "creating Iso Image"
+genisoimage -l -r -J -V "ARCH_$(date +%Y%m)" \
+ -b isolinux/isolinux.bin -no-emul-boot \
+ -boot-load-size 4 -boot-info-table -c isolinux/boot.cat \
+ -o "$outdir/$outfile" "$isodir" | to_dots
+