livecd-rootfs/live-build/ubuntu-core/hooks/500-move-kernel-to-device-tar.binary
Michael Vogt fcfe7d613a * live-build/auto/{build,config}:
- create device-azure.tar.gz during the build that includes the
    packages for the azure cloud
* live-build/ubuntu-core/hooks/400-create-apt-get-warning.binary:
  - display helpful message to use snappy when a user tries to use
    apt-get on a snappy system
* live-build/ubuntu-core/hooks/500-move-kernel-to-device-tar.binary:
  - do the device-azure.tar.gz extraction here
* live-build/ubuntu-core/hooks/12-add-docker-user.chroot:
  - ensure docker group is used
2014-11-24 08:38:21 +01:00

66 lines
1.7 KiB
Bash

#!/bin/sh
#
# move the kernel out into a new device tarfile with system/boot
set -e
echo "I: Moving kernel into device tarball"
HERE="$(pwd)"
TMPDIR="$(mktemp -d)"
mkdir -p $TMPDIR/system/
# cp files, we can't simply use tar --transform as it changes the symlink target
(
cd binary/boot/filesystem.dir
cp -ar --parent boot/vmlinu?-* boot/initrd.img-* boot/abi-* boot/System.map-* $TMPDIR/system/
cp -ar --parent lib/modules/ $TMPDIR/system/
if [ -e vmlinu? ] && [ -e initrd.img ]; then
cp -ar --parent vmlinu? initrd.img $TMPDIR/system
fi
)
# and tar it up
(
cd $TMPDIR
tar -c -z -f $HERE/device.tar.gz system
)
# now build the azure device tarball by adding walinuxagent
if [ -e binary/boot/filesystem.dir/var/lib/dpkg/info/walinuxagent.list ];
then
(
cd binary/boot/filesystem.dir
while read line; do
line=$(echo $line |cut -d/ -f2-)
if [ -e "$line" ] && [ ! -d "$line" ]; then
cp -ar --parent $line $TMPDIR/system
fi
done < var/lib/dpkg/info/walinuxagent.list
# created by walinuxagent postinst/dh-systemd
cp -ar --parent var/lib/systemd/deb-systemd-helper-enabled/walinuxagent* $TMPDIR/system
cp -ar --parent etc/systemd/system/multi-user.target.wants/walinuxagent* $TMPDIR/system
mkdir -p $TMPDIR/system/var/lib/waagent
)
# and tar it up
(
cd $TMPDIR
tar -c -z -f $HERE/device-azure.tar.gz system
)
fi
rm -rf $TMPDIR
# remove files from the root filesystem
(cd binary/boot/filesystem.dir
rm -f boot/vmlinu?-*
rm -f boot/initrd.img-*
rm -f boot/abi-*
rm -f boot/System.map-*
rm -f initrd.img
rm -f vmlinu?
rm -rf lib/modules
# remove walinuxagent
if [ -e var/lib/dpkg/info/walinuxagent.list ]; then
chroot . dpkg --purge walinuxagent || true
fi
)