From 46a58cb3730000fec238a698ea169cc4d0aa05d7 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Mon, 4 Jul 2016 17:34:58 +0800 Subject: main buildlive scripts --- buildlive | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ functions.sh | 17 +++++++++++++++ 2 files changed, 86 insertions(+) create mode 100755 buildlive create mode 100644 functions.sh diff --git a/buildlive b/buildlive new file mode 100755 index 0000000..757c51a --- /dev/null +++ b/buildlive @@ -0,0 +1,69 @@ +#!/bin/bash + +set -e + +DISTROLIST=() +ROOTPATH= +DEVNAME= + +. functions.sh + +msg() { + echo -e "$1" >&2 +} + +errmsg() { + msg "\x1b[1;31m$1\x1b[0m" +} + +usage() { + msg "$0 --root= --dev= [distro 1] [distro 2] ..." +} + +while [[ -n "$1" ]] +do + case "$1" in + --root=*) + ROOTPATH=${1/--root=} + msg "Files will be copy to $ROOTPATH" + ;; + --dev=*) + DEVNAME=${1/--dev=} + msg "Boot sector will be written to $DEVNAME" + ;; + *=*) + usage + exit 1 + ;; + *) + if [ -d "distro/$1" ] + then + DISTROLIST=(${DISTROLIST[@]} "$1") + else + errmsg "directory distro/$1 not found" + exit 1 + fi + ;; + esac + shift +done + +for i in ${DISTROLIST[@]} +do + process_distro "$i" + if [ -f "isofiles/$ISOFILE" ]; then + CKSUM=$(sha256sum "isofiles/$ISOFILE" | cut -d' ' -f1) + if [[ $CKSUM == $SHA256 ]]; then + msg "$ISOFILE ok." + else + errmsg "$ISOFILE checksum bad!" + exit 1 + fi + else + errmsg "File isofiles/$ISOFILE not found!" + exit 1 + fi + + install +done + diff --git a/functions.sh b/functions.sh new file mode 100644 index 0000000..d4ddfc7 --- /dev/null +++ b/functions.sh @@ -0,0 +1,17 @@ +process_distro() { + source "distro/$1/install.sh" + ISOFILE="$(basename $ISOURL)" + ISOMNT="/media/$ISOFILE" +} + +mount_iso() { + udevil mount "isofiles/$ISOFILE" "$ISOMNT" +} + +umount_iso() { + udevil umount "$ISOMNT" +} + +getuuid() { + lsblk -n -o UUID "$1" +} -- cgit v1.2.3