unity/scripts/respin.sh | 69 ++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 61 insertions(+), 8 deletions(-)
New commits:
commit 5a069d46418a2eb65e517238870886e8cdd99f3a
Author: Jeroen van Meeuwen (Fedora Unity) <kanarip(a)fedoraunity.org>
Date: Mon Feb 23 15:13:48 2009 +0100
Update respin.sh
diff --git a/unity/scripts/respin.sh b/unity/scripts/respin.sh
index 53d374e..0e16203 100755
--- a/unity/scripts/respin.sh
+++ b/unity/scripts/respin.sh
@@ -1,5 +1,35 @@
#!/bin/bash
+#
+# Copyright 2008-2009 Jeroen van Meeuwen <kanarip(a)fedoraunity.org>
+#
+# This is a script to automate respins for both installation and live media.
+#
+# The script makes the following assumptions:
+#
+# - you have sudo configured for the user you are executing the script with, for
+# at least the following commands:
+#
+# 1) sudo make install (in /tmp/spin-kickstarts)
+# 2) sudo ./revisor.py (if running from source)
+# 3) sudo revisor (if running from installed RPMs)
+# 4) sudo mkdir -p
+# 5) sudo mv
+#
+# - you have all the required packages installed (see $revisor_deps)
+# - you have enough disk space (haha, no estimate here)
+#
+# And, last but not least, you have configured the following in
+# /etc/mock/site-defaults.cfg:
+#
+# # bind mount plugin is enabled by default but has no configured directories to mount
+# # config_opts['plugin_conf']['bind_mount_enable'] = True
+#
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/selinux/',
'/selinux/' ))
+#
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/srv/revisor/',
'/srv/revisor/' ))
+# # (optional)
+#
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/var/tmp/revisor-yumcache/',
'/var/tmp/revisor-yumcache/' ))
+#
+
function usage() {
echo "$0 [options]"
}
@@ -8,6 +38,13 @@ if [ $# -eq 0 ]; then
usage
fi
+revisor_deps="comps-extras createrepo rhpl pykickstart livecd-tools
+ anaconda-runtime squashfs-tools busybox-anaconda notify-python usermode
+ pam python automake intltool gettext desktop-file-utils glib2-devel gcc
+ cobbler koan deltarpm pygtk pygtk2-libglade gnome-python2-gconf
+ system-config-kickstart jigdo livecd-tools python-virtinst git sudo
+ spin-kickstarts mock"
+
while [ $# -gt 0 ]; do
case $1 in
--version)
@@ -21,6 +58,17 @@ while [ $# -gt 0 ]; do
esac
done
+# Thanks. Now, before we do anything, let's check if the packages we depend
+# on are actually installed
+
+for pkg in $revisor_deps; do
+ if [ -z "`rpm -qv $pkg`" ]; then
+ pkg_error="$pkg_error\nPackage $pkg not installed"
+ fi
+done
+
+[ ! -z "$pkg_error" ] && echo -en "ERROR:\n$pkg_error"
&& exit 1
+
if [ -d ~/devel/revisor/master ]; then
cd ~/devel/revisor/master
@@ -64,13 +112,18 @@ for version in $VERSIONS; do
sudo mv revisor-$spin.log /srv/revisor/$datestamp/$spin/log/
done
- mock -r fedora-$version-$arch clean && \
- mock -r fedora-$version-$arch init && \
- mock -r fedora-$version-$arch install $revisor_deps && \
- echo -en "git clone
git://git.fedorahosted.org/revisor\n" | mock -r
fedora-$version-$arch shell
- echo -en "cd /revisor; ./switchhere --yes\n" | mock -r
fedora-$version-$arch shell
- echo -en "cd /revisor; autoreconf && ./configure\n" | mock -r
fedora-$version-$arch shell
- echo -en "find /var/lib/rpm/ -name '__db.*' -delete\n" | mock
-r fedora-$version-$arch shell
- echo -en "cd /revisor; ./revisor.py --cli --config
/etc/revisor-unity/f$version-install-respin.conf --model f$version-$arch-respin --debug
9\n" | mock -r fedora-$version-$arch shell;
+ mock -r fedora-$version-$arch clean | tee revisor-f$version-$arch-respin.log
&& \
+ mock -r fedora-$version-$arch init | tee -a revisor-f$version-$arch-respin.log
&& \
+ mock -r fedora-$version-$arch install $revisor_deps | tee -a
revisor-f$version-$arch-respin.log && \
+ echo -en "git clone
git://git.fedorahosted.org/revisor\n" | mock -r
fedora-$version-$arch shell | tee -a revisor-f$version-$arch-respin.log && \
+ echo -en "cd /revisor; ./switchhere --yes\n" | mock -r
fedora-$version-$arch shell | tee -a revisor-f$version-$arch-respin.log && \
+ echo -en "cd /revisor; autoreconf && ./configure\n" | mock -r
fedora-$version-$arch shell | tee -a revisor-f$version-$arch-respin.log && \
+ echo -en "find /var/lib/rpm/ -name '__db.*' -delete\n" | mock
-r fedora-$version-$arch shell | tee -a revisor-f$version-$arch-respin.log && \
+ echo -en "cd /revisor; ./revisor.py --cli --config
/etc/revisor-unity/f$version-install-respin.conf --destination-directory
/srv/revisor/$datestamp/ --model f$version-$arch-respin --debug 9\n" | mock -r
fedora-$version-$arch shell | tee -a revisor-f$version-$arch-respin.log
+
+ [ $? -gt 0 ] && echo "Spin f$version-$arch-respin failed, log file
attached" | mail -s "f$version-$arch-respin failed" -a
revisor-f$version-$arch-respin.log "kanarip(a)kanarip.com"
+
+ sudo mkdir -p /srv/revisor/$datestamp/f$version-$arch-respin/log/
+ sudo mv revisor-f$version-$arch-respin.log
/srv/revisor/$datestamp/f$version-$arch-respin/log/
done
done
\ No newline at end of file