summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgit/gitolite-hooks/irc-announce28
-rwxr-xr-xship/src/fix_dircolors2
-rwxr-xr-xship/src/remaster_arch_filehooker106
-rwxr-xr-xship/src/remaster_arch_shack_installstick49
4 files changed, 40 insertions, 145 deletions
diff --git a/git/gitolite-hooks/irc-announce b/git/gitolite-hooks/irc-announce
index 32ae8f26..a135ca67 100755
--- a/git/gitolite-hooks/irc-announce
+++ b/git/gitolite-hooks/irc-announce
@@ -57,6 +57,19 @@ cat2() { tee /dev/stderr; }
# privmsg_cat transforms stdin to a privmsg
privmsg_cat() { awk '{ print "PRIVMSG "ENVIRON["IRC_CHANNEL"]" :"$0 }'; }
+# ircin is used to feed the output of netcat back to the "irc client"
+# so we can implement expect-like behavior with sed^_^
+# XXX mkselfdestructingtmpfifo would be nice instead of this cruft
+tmpdir="$(mktemp -d irc-announce_XXXXXXXX)"
+cd "$tmpdir"
+mkfifo ircin
+trap "
+ rm ircin
+ cd '$OLDPWD'
+ rmdir '$tmpdir'
+ trap - EXIT INT QUIT
+" EXIT INT QUIT
+
#
#
#
@@ -65,8 +78,7 @@ privmsg_cat() { awk '{ print "PRIVMSG "ENVIRON["IRC_CHANNEL"]" :"$0 }'; }
echo2 "NICK $IRC_NICK"
# wait for MODE message
- # CAVEAT 1 second was enough while testing...^_^
- sleep 1
+ sed -n '/^:[^ ]* MODE /q'
echo2 "JOIN $IRC_CHANNEL"
@@ -81,7 +93,7 @@ privmsg_cat() { awk '{ print "PRIVMSG "ENVIRON["IRC_CHANNEL"]" :"$0 }'; }
"$reponame" \
"$username" \
"$commit_count" \
- "$(test $commit_count == 1 || echo s)" \
+ "$(test $commit_count = 1 || echo s)" \
"$(hostname)" \
"$ref_name" \
| privmsg_cat \
@@ -94,11 +106,9 @@ privmsg_cat() { awk '{ print "PRIVMSG "ENVIRON["IRC_CHANNEL"]" :"$0 }'; }
echo2 "PART $IRC_CHANNEL"
- # TESTME does this sleep help to send all messages?
- sleep 5
+ # wait for PART confirmation
+ sed -n '/:'"$IRC_NICK"'![^ ]* PART /q'
echo2 'QUIT :Gone to have lunch'
-
- printf 
-} \
- | nc -c "$IRC_SERVER" "$IRC_PORT"
+} < ircin \
+ | nc "$IRC_SERVER" "$IRC_PORT" | tee -a ircin
diff --git a/ship/src/fix_dircolors b/ship/src/fix_dircolors
index b2e2ffdb..d427563f 100755
--- a/ship/src/fix_dircolors
+++ b/ship/src/fix_dircolors
@@ -6,7 +6,7 @@ exists dircolors || die "no dircolors in PATH, bailing out"
info "fixing dircolors for $(id -un)"
dircolors -p > $HOME/.dircolors
-sed -i 's/\(DIR \).*/\101;35/' $HOME/.dircolors
+sed -i 's/\(DIR \).*/\101;36/' $HOME/.dircolors
! grep -q 'dircolors' $HOME/.profile && \
info "adding dircolors line to $HOME/.profile" && \
echo 'eval `dircolors -b $HOME/.dircolors`' >> $HOME/.profile
diff --git a/ship/src/remaster_arch_filehooker b/ship/src/remaster_arch_filehooker
deleted file mode 100755
index 54f0b082..00000000
--- a/ship/src/remaster_arch_filehooker
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/bin/sh
-#@include core
-#@include iso
-#@mainifyme
-
-## TODO: provide a parameter which defines what to be done in the new iso root
-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
-auto_url=conf.krebsco.de/filehooker_install
-info "bdir is at $bdir"
-[ ! -e "$isofile" ] && die "$isofile does not exist."
-esudo "$@"
-arch_label="$(get_volid "$isofile")"
-info "Arch iso label is ${arch_label}"
-
-
-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
- die 'we are not root enough to mount the iso.'
-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 'not mounted'"
-
- info "Starting of the rootdir verkrepelung"
- # do the magic here
- arch-chroot $rootdir/$arch <<EOF
- cat >> /root/.zshrc<<EOL
-cat << EOD
-This is the Krebs Autoinstaller, we will do all the right things.
-Just Wait until everything finished.
-
-- Make sure that RJ45 is connected
-- you can bail out of the progress at any time with CTRL-C
-
- /krebs/autoinstall <install-disk (/dev/sdx)>
-EOD
-# /krebs/autoinstall
-EOL
-
- : \${1?\$0 <install-disk (/dev/sdx)>}
- mkdir /krebs
- cat > /krebs/autoinstall <<EOL
-internet() { ping -w 1 google.de >/dev/null 2>&1; }
-while ! internet;do
- echo "no Internet yet, waiting ..."
- sleep 3
-done
-
-echo "Grabbing current version of install-script from $auto_url"
-echo
-echo "AGENTS ARE GOOOOOOOOOOO!"
-curl $auto_url 2>/dev/null | sh -s "\\\$@"
-EOL
-chmod 755 /krebs/autoinstall
-EOF
- info "deleting old squashfs"
- rm "$isodir/arch/$arch/root-image.fs.sfs"
- info "creating squashfs at $isodir/arch/$arch/root-image.fs.sfs"
- umount "$rootdir/$arch"
- mksquashfs "$outdir/$arch/root-image.fs" "$isodir/arch/$arch/root-image.fs.sfs"
-done
-
-info "creating Iso Image"
-rm -f "${outdir}/${outfile}"
-xorriso -as mkisofs \
- -iso-level 3 \
- -full-iso9660-filenames \
- -volid "ARCH_201311" \
- -appid "Shackspace Krebs Installer" \
- -publisher "Shackspace/Krebs" \
- -preparer "prepared by krebs" \
- -eltorito-boot isolinux/isolinux.bin \
- -eltorito-catalog isolinux/boot.cat \
- -no-emul-boot -boot-load-size 4 -boot-info-table \
- -isohybrid-mbr ${isomnt}/isolinux/isohdpfx.bin \
- -output "${outdir}/${outfile}" \
- "$isodir"
-
diff --git a/ship/src/remaster_arch_shack_installstick b/ship/src/remaster_arch_shack_installstick
index 364e1958..3ad985af 100755
--- a/ship/src/remaster_arch_shack_installstick
+++ b/ship/src/remaster_arch_shack_installstick
@@ -5,42 +5,38 @@
## TODO: provide a parameter which defines what to be done in the new iso root
set -efu
-isofile="${1:-archlinux-2013.06.01-dual.iso}"
-outfile="$(basename "${isofile%.iso}".krebs.iso)"
+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"
-echo "$outdir/$outfile"
-auto_url=euer.krebsco.de/arch_autoinstall
+bdir=${bdir:-$HOME/build/arch}
+isodir=$bdir/iso
+isomnt=$bdir/isomount
+rootdir=$bdir/root
+outdir=$bdir/out
+auto_url=${2:-conf.krebsco.de/arch_autoinstall}
info "bdir is at $bdir"
[ ! -e "$isofile" ] && die "$isofile does not exist."
+esudo "$@"
arch_label="$(get_volid "$isofile")"
info "Arch iso label is ${arch_label}"
-esudo "$@"
-
-#punani install genisoimage
-
+info "auto_url is $auto_url"
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"
+ mount -t iso9660 -o loop,ro $isofile $isomnt
else
die 'we are not root enough to mount the iso.'
fi
-defer "info 'unmounting $isomnt';umount \"$isomnt\""
+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"
@@ -55,7 +51,7 @@ for arch in x86_64 i686;do
info "Starting of the rootdir verkrepelung"
# do the magic here
- arch-chroot "$rootdir/$arch" <<EOF
+ arch-chroot $rootdir/$arch <<EOF
cat >> /root/.zshrc<<EOL
cat << EOD
This is the Krebs Autoinstaller, we will do all the right things.
@@ -63,12 +59,11 @@ Just Wait until everything finished.
- Make sure that RJ45 is connected
- you can bail out of the progress at any time with CTRL-C
-- if anything went wrong,you can run the installer again at:
- /krebs/autoinstall
-
+ /krebs/autoinstall (args)
EOD
/krebs/autoinstall
EOL
+
mkdir /krebs
cat > /krebs/autoinstall <<EOL
internet() { ping -w 1 google.de >/dev/null 2>&1; }
@@ -80,7 +75,7 @@ done
echo "Grabbing current version of install-script from $auto_url"
echo
echo "AGENTS ARE GOOOOOOOOOOO!"
-curl $auto_url 2>/dev/null | sh
+curl "$auto_url" 2>/dev/null | sh -s "\\\$@"
EOL
chmod 755 /krebs/autoinstall
EOF
@@ -88,26 +83,22 @@ EOF
rm "$isodir/arch/$arch/root-image.fs.sfs"
info "creating squashfs at $isodir/arch/$arch/root-image.fs.sfs"
umount "$rootdir/$arch"
- mksquashfs "$outdir/$arch/root-image.fs" "$isodir/arch/$arch/root-image.fs.sfs"
+ mksquashfs "$outdir/$arch/root-image.fs" "$isodir/arch/$arch/root-image.fs.sfs"
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"
rm -f "${outdir}/${outfile}"
xorriso -as mkisofs \
-iso-level 3 \
-full-iso9660-filenames \
- -volid "$arch_label" \
+ -volid "${arch_label}" \
-appid "Shackspace Krebs Installer" \
-publisher "Shackspace/Krebs" \
-preparer "prepared by krebs" \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
- -isohybrid-mbr "${isomnt}/isolinux/isohdpfx.bin" \
+ -isohybrid-mbr ${isomnt}/isolinux/isohdpfx.bin \
-output "${outdir}/${outfile}" \
"$isodir"