diff options
| author | makefu <root@pigstarter.de> | 2014-03-14 23:29:05 +0100 | 
|---|---|---|
| committer | makefu <root@pigstarter.de> | 2014-03-14 23:29:05 +0100 | 
| commit | 311442dd6e7ca87c4490af1127d1bd942ed02f2e (patch) | |
| tree | b325663ce21031d66a4fb3a9d57e830c76c42a5b | |
| parent | a5c8fb018527b8642e6be01a9e2fc1af7cb80cb7 (diff) | |
| parent | d13ad30fdbf0638cf019f9e3888e5c1c6afd11ef (diff) | |
Merge branch 'master' of https://github.com/krebscode/painload
| -rwxr-xr-x | git/gitolite-hooks/irc-announce | 28 | ||||
| -rwxr-xr-x | ship/src/fix_dircolors | 2 | ||||
| -rwxr-xr-x | ship/src/remaster_arch_filehooker | 106 | ||||
| -rwxr-xr-x | ship/src/remaster_arch_shack_installstick | 49 | 
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" | 
