JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # To call this script, make sure make_f2fs is somewhere in PATH |
| 4 | |
| 5 | function usage() { |
| 6 | cat<<EOT |
| 7 | Usage: |
| 8 | ${0##*/} OUTPUT_FILE SIZE |
Daniel Rosenberg | 7e2d592 | 2019-12-17 18:35:51 -0800 | [diff] [blame] | 9 | [-S] [-C FS_CONFIG] [-f SRC_DIR] [-D PRODUCT_OUT] |
Jaegeuk Kim | 1e4263b | 2017-11-28 19:41:30 -0800 | [diff] [blame] | 10 | [-s FILE_CONTEXTS] [-t MOUNT_POINT] [-T TIMESTAMP] |
Daniel Rosenberg | f9c2a1d | 2019-12-17 14:46:25 -0800 | [diff] [blame] | 11 | [-L LABEL] [--prjquota] [--casefold] |
JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 12 | EOT |
| 13 | } |
| 14 | |
| 15 | echo "in mkf2fsuserimg.sh PATH=$PATH" |
| 16 | |
Jaegeuk Kim | 1e4263b | 2017-11-28 19:41:30 -0800 | [diff] [blame] | 17 | MKFS_OPTS="" |
| 18 | SLOAD_OPTS="" |
| 19 | |
JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 20 | if [ $# -lt 2 ]; then |
| 21 | usage |
| 22 | exit 1 |
| 23 | fi |
| 24 | |
| 25 | OUTPUT_FILE=$1 |
| 26 | SIZE=$2 |
| 27 | shift; shift |
| 28 | |
Alistair Delva | c5c323d | 2019-10-16 10:40:23 -0700 | [diff] [blame] | 29 | SPARSE_IMG="false" |
| 30 | if [[ "$1" == "-S" ]]; then |
| 31 | MKFS_OPTS+=" -S $SIZE" |
| 32 | SLOAD_OPTS+=" -S" |
| 33 | SPARSE_IMG="true" |
| 34 | shift |
| 35 | fi |
| 36 | |
Jaegeuk Kim | 1e4263b | 2017-11-28 19:41:30 -0800 | [diff] [blame] | 37 | if [[ "$1" == "-C" ]]; then |
| 38 | SLOAD_OPTS+=" -C $2" |
| 39 | shift; shift |
| 40 | fi |
| 41 | if [[ "$1" == "-f" ]]; then |
| 42 | SLOAD_OPTS+=" -f $2" |
| 43 | shift; shift |
| 44 | fi |
| 45 | if [[ "$1" == "-D" ]]; then |
| 46 | SLOAD_OPTS+=" -p $2" |
| 47 | shift; shift |
| 48 | fi |
| 49 | if [[ "$1" == "-s" ]]; then |
| 50 | SLOAD_OPTS+=" -s $2" |
| 51 | shift; shift |
| 52 | fi |
| 53 | if [[ "$1" == "-t" ]]; then |
| 54 | MOUNT_POINT=$2 |
| 55 | shift; shift |
| 56 | fi |
| 57 | |
| 58 | if [ -z $MOUNT_POINT ]; then |
| 59 | echo "Mount point is required" |
| 60 | exit 2 |
| 61 | fi |
| 62 | |
| 63 | if [[ ${MOUNT_POINT:0:1} != "/" ]]; then |
| 64 | MOUNT_POINT="/"$MOUNT_POINT |
| 65 | fi |
| 66 | |
| 67 | SLOAD_OPTS+=" -t $MOUNT_POINT" |
| 68 | |
| 69 | if [[ "$1" == "-T" ]]; then |
| 70 | SLOAD_OPTS+=" -T $2" |
| 71 | shift; shift |
| 72 | fi |
| 73 | |
| 74 | if [[ "$1" == "-L" ]]; then |
| 75 | MKFS_OPTS+=" -l $2" |
| 76 | shift; shift |
| 77 | fi |
JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 78 | |
Daniel Rosenberg | f9c2a1d | 2019-12-17 14:46:25 -0800 | [diff] [blame] | 79 | if [[ "$1" == "--prjquota" ]]; then |
| 80 | MKFS_OPTS+=" -O project_quota,extra_attr" |
| 81 | shift; |
| 82 | fi |
| 83 | if [[ "$1" == "--casefold" ]]; then |
| 84 | MKFS_OPTS+=" -O casefold -C utf8" |
| 85 | shift; |
| 86 | fi |
| 87 | |
JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 88 | if [ -z $SIZE ]; then |
| 89 | echo "Need size of filesystem" |
| 90 | exit 2 |
| 91 | fi |
| 92 | |
Alistair Delva | c5c323d | 2019-10-16 10:40:23 -0700 | [diff] [blame] | 93 | if [ "$SPARSE_IMG" = "false" ]; then |
| 94 | TRUNCATE_CMD="truncate -s $SIZE $OUTPUT_FILE" |
| 95 | echo $TRUNCATE_CMD |
| 96 | $TRUNCATE_CMD |
| 97 | if [ $? -ne 0 ]; then |
| 98 | exit 3 |
| 99 | fi |
| 100 | fi |
| 101 | |
| 102 | MAKE_F2FS_CMD="make_f2fs -g android $MKFS_OPTS $OUTPUT_FILE" |
JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 103 | echo $MAKE_F2FS_CMD |
| 104 | $MAKE_F2FS_CMD |
| 105 | if [ $? -ne 0 ]; then |
Alistair Delva | c5c323d | 2019-10-16 10:40:23 -0700 | [diff] [blame] | 106 | if [ "$SPARSE_IMG" = "false" ]; then |
| 107 | rm -f $OUTPUT_FILE |
| 108 | fi |
JP Abgrall | 8e9cdda | 2014-06-16 11:08:45 -0700 | [diff] [blame] | 109 | exit 4 |
| 110 | fi |
Jaegeuk Kim | 1e4263b | 2017-11-28 19:41:30 -0800 | [diff] [blame] | 111 | |
Alistair Delva | c5c323d | 2019-10-16 10:40:23 -0700 | [diff] [blame] | 112 | SLOAD_F2FS_CMD="sload_f2fs $SLOAD_OPTS $OUTPUT_FILE" |
Jaegeuk Kim | 1e4263b | 2017-11-28 19:41:30 -0800 | [diff] [blame] | 113 | echo $SLOAD_F2FS_CMD |
| 114 | $SLOAD_F2FS_CMD |
| 115 | if [ $? -ne 0 ]; then |
| 116 | rm -f $OUTPUT_FILE |
| 117 | exit 4 |
| 118 | fi |