From 7968ab11cb28f0de4a2d303b367e4216f1ef60a7 Mon Sep 17 00:00:00 2001 From: CyberLeo Date: Sat, 28 Aug 2010 18:08:16 -0500 Subject: [PATCH] script/loadconf: stub script to import Mosi config from a config partition --- script/loadconf | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 script/loadconf diff --git a/script/loadconf b/script/loadconf new file mode 100755 index 0000000..0cd51d1 --- /dev/null +++ b/script/loadconf @@ -0,0 +1,43 @@ +#!/bin/sh + +_root="$(dirname "${0}")"; . "${_root}/lib/env.sh" +want root log + +err "Don't use me yet!" + +pebkac() { + echo "Insert help here" +} + +while getopts "d:o:h" opt +do + case "${opt}" in + d) dev="${OPTARG}" ;; + o) conf="${OPTARG}" ;; + h) pebkac ;; + [?]) pebkac "Unrecognized option ${opt}" ;; + esac +done +shift $(( $OPTIND - 1 )) + +_dev="${dev}" +tgt="${tgt:-${_root}/../src/conf}" + +[ -b "${dev}" -o -c "${dev}" ] || dev="/dev/${dev}" +[ -b "${dev}" -o -c "${dev}" ] || err "${_dev}: no such file or directory" +[ -d "${tgt}" ] || err "${tgt}: not a directory" + +tmpdir="$(mktemp -d "$(dirname "${tgt}").XXXXXXXX")" +tmpmnt="$(mktemp -d "/tmp/conf.XXXXXXXX")" +trap "umount -f '${tmpmnt}'; rm -Rf '${tmpdir}' '${tmpmnt}'" exit hup int term kill +chk cd "${tmpdir}" +chk mount "${dev}" "${tmpmnt}" + +( zcat "${tmpmnt}/default/etc.cpio.gz" | cpio -id ) || chk +( zcat "${tmpmnt}/default/var.cpio.gz" | cpio -id ) || chk +chk umount "${tmpmnt}" +chk rm -Rf "${tmpmnt}" +rm -Rf "${tgt}.old" +chk mv "${tgt}" "${tgt}.old" +chk mv "${tmpdir}" "${tgt}" +trap "" exit hup int term kill -- 2.42.0