1b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalley#!/bin/bash -x
23c977822a4f3023d2717130caca74d0318433f4aColin Cross#
33c977822a4f3023d2717130caca74d0318433f4aColin Cross# To call this script, make sure make_ext4fs is somewhere in PATH
43c977822a4f3023d2717130caca74d0318433f4aColin Cross
53c977822a4f3023d2717130caca74d0318433f4aColin Crossfunction usage() {
63c977822a4f3023d2717130caca74d0318433f4aColin Crosscat<<EOT
73c977822a4f3023d2717130caca74d0318433f4aColin CrossUsage:
8b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalleymkuserimg.sh [-s] SRC_DIR OUTPUT_FILE EXT_VARIANT MOUNT_POINT SIZE [FILE_CONTEXTS]
93c977822a4f3023d2717130caca74d0318433f4aColin CrossEOT
103c977822a4f3023d2717130caca74d0318433f4aColin Cross}
113c977822a4f3023d2717130caca74d0318433f4aColin Cross
123c977822a4f3023d2717130caca74d0318433f4aColin Crossecho "in mkuserimg.sh PATH=$PATH"
133c977822a4f3023d2717130caca74d0318433f4aColin Cross
14c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing WangENABLE_SPARSE_IMAGE=
15c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wangif [ "$1" = "-s" ]; then
16c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wang  ENABLE_SPARSE_IMAGE="-s"
17c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wang  shift
18c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wangfi
19c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wang
20b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalleyif [ $# -ne 4 -a $# -ne 5 -a $# -ne 6 ]; then
213c977822a4f3023d2717130caca74d0318433f4aColin Cross  usage
223c977822a4f3023d2717130caca74d0318433f4aColin Cross  exit 1
233c977822a4f3023d2717130caca74d0318433f4aColin Crossfi
243c977822a4f3023d2717130caca74d0318433f4aColin Cross
253c977822a4f3023d2717130caca74d0318433f4aColin CrossSRC_DIR=$1
263c977822a4f3023d2717130caca74d0318433f4aColin Crossif [ ! -d $SRC_DIR ]; then
273c977822a4f3023d2717130caca74d0318433f4aColin Cross  echo "Can not find directory $SRC_DIR!"
283c977822a4f3023d2717130caca74d0318433f4aColin Cross  exit 2
293c977822a4f3023d2717130caca74d0318433f4aColin Crossfi
303c977822a4f3023d2717130caca74d0318433f4aColin Cross
313c977822a4f3023d2717130caca74d0318433f4aColin CrossOUTPUT_FILE=$2
323c977822a4f3023d2717130caca74d0318433f4aColin CrossEXT_VARIANT=$3
338bdbbe2de23a8a8fc26b7f3a4b7dfdbe1112ac9fYing WangMOUNT_POINT=$4
343c977822a4f3023d2717130caca74d0318433f4aColin CrossSIZE=$5
35b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen SmalleyFC=$6
363c977822a4f3023d2717130caca74d0318433f4aColin Cross
373c977822a4f3023d2717130caca74d0318433f4aColin Crosscase $EXT_VARIANT in
383c977822a4f3023d2717130caca74d0318433f4aColin Cross  ext4) ;;
393c977822a4f3023d2717130caca74d0318433f4aColin Cross  *) echo "Only ext4 is supported!"; exit 3 ;;
403c977822a4f3023d2717130caca74d0318433f4aColin Crossesac
413c977822a4f3023d2717130caca74d0318433f4aColin Cross
428bdbbe2de23a8a8fc26b7f3a4b7dfdbe1112ac9fYing Wangif [ -z $MOUNT_POINT ]; then
438bdbbe2de23a8a8fc26b7f3a4b7dfdbe1112ac9fYing Wang  echo "Mount point is required"
443c977822a4f3023d2717130caca74d0318433f4aColin Cross  exit 2
453c977822a4f3023d2717130caca74d0318433f4aColin Crossfi
463c977822a4f3023d2717130caca74d0318433f4aColin Cross
473c977822a4f3023d2717130caca74d0318433f4aColin Crossif [ -z $SIZE ]; then
483c977822a4f3023d2717130caca74d0318433f4aColin Cross    SIZE=128M
493c977822a4f3023d2717130caca74d0318433f4aColin Crossfi
503c977822a4f3023d2717130caca74d0318433f4aColin Cross
51b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalleyif [ -n "$FC" ]; then
52b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalley    FCOPT="-S $FC"
53b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalleyfi
54b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen Smalley
55b4eca4b24af9c80ebb2a7fa2ba539a48096b7576Stephen SmalleyMAKE_EXT4FS_CMD="make_ext4fs $ENABLE_SPARSE_IMAGE $FCOPT -l $SIZE -a $MOUNT_POINT $OUTPUT_FILE $SRC_DIR"
56c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wangecho $MAKE_EXT4FS_CMD
57c22117cb003f7a00071bbbaa3bbbf6e530a54b9aYing Wang$MAKE_EXT4FS_CMD
583c977822a4f3023d2717130caca74d0318433f4aColin Crossif [ $? -ne 0 ]; then
593c977822a4f3023d2717130caca74d0318433f4aColin Cross  exit 4
603c977822a4f3023d2717130caca74d0318433f4aColin Crossfi
61