1*4882a593Smuzhiyun#!/bin/bash -e 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunprint_usage() 4*4882a593Smuzhiyun{ 5*4882a593Smuzhiyun normalized_usage | grep -v "^mod-parts" 6*4882a593Smuzhiyun echo -e "done \tdone modifying and quit" 7*4882a593Smuzhiyun} 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmodify_partitions() 10*4882a593Smuzhiyun{ 11*4882a593Smuzhiyun echo "==========================================" 12*4882a593Smuzhiyun echo " Start modifying partitions" 13*4882a593Smuzhiyun echo "==========================================" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun rk_partition_print 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun echo 18*4882a593Smuzhiyun echo "Usage:" 19*4882a593Smuzhiyun print_usage 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun while true; do 22*4882a593Smuzhiyun echo 23*4882a593Smuzhiyun read -p "Commands (? for help): " SUB_CMD ARGS || break 24*4882a593Smuzhiyun case "${SUB_CMD:-print-parts}" in 25*4882a593Smuzhiyun done) break ;; 26*4882a593Smuzhiyun print-parts) 27*4882a593Smuzhiyun rk_partition_print 28*4882a593Smuzhiyun continue 29*4882a593Smuzhiyun ;; 30*4882a593Smuzhiyun edit-parts) FUNC=rk_partition_edit ;; 31*4882a593Smuzhiyun new-parts) FUNC=rk_partition_create ;; 32*4882a593Smuzhiyun insert-part) FUNC=rk_partition_insert ;; 33*4882a593Smuzhiyun del-part) FUNC=rk_partition_del ;; 34*4882a593Smuzhiyun move-part) FUNC=rk_partition_move ;; 35*4882a593Smuzhiyun rename-part) FUNC=rk_partition_rename ;; 36*4882a593Smuzhiyun resize-part) FUNC=rk_partition_resize ;; 37*4882a593Smuzhiyun help | h | -h | --help | \?) FUNC=false ;; 38*4882a593Smuzhiyun *) 39*4882a593Smuzhiyun echo "Unknown command: $SUB_CMD" 40*4882a593Smuzhiyun FUNC=false 41*4882a593Smuzhiyun ;; 42*4882a593Smuzhiyun esac 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun if $FUNC $ARGS; then 45*4882a593Smuzhiyun rk_partition_print 46*4882a593Smuzhiyun else 47*4882a593Smuzhiyun print_usage 48*4882a593Smuzhiyun fi 49*4882a593Smuzhiyun done 50*4882a593Smuzhiyun} 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun# Hooks 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunusage_hook() 55*4882a593Smuzhiyun{ 56*4882a593Smuzhiyun echo -e "print-parts \tprint partitions" 57*4882a593Smuzhiyun echo -e "mod-parts \tinteractive partition table modify" 58*4882a593Smuzhiyun echo -e "edit-parts \tedit raw partitions" 59*4882a593Smuzhiyun echo -e "new-parts:<offset>:<name>:<size>...\tre-create partitions" 60*4882a593Smuzhiyun echo -e "insert-part:<idx>:<name>[:<size>] \tinsert partition" 61*4882a593Smuzhiyun echo -e "del-part:(<idx>|<name>) \tdelete partition" 62*4882a593Smuzhiyun echo -e "move-part:(<idx>|<name>):<idx> \tmove partition" 63*4882a593Smuzhiyun echo -e "rename-part:(<idx>|<name>):<name> \trename partition" 64*4882a593Smuzhiyun echo -e "resize-part:(<idx>|<name>):<size> \tresize partition" 65*4882a593Smuzhiyun} 66*4882a593Smuzhiyun 67*4882a593SmuzhiyunPRE_BUILD_CMDS="print-parts mod-parts edit-parts new-parts insert-part del-part move-part rename-part resize-part" 68*4882a593Smuzhiyunpre_build_hook() 69*4882a593Smuzhiyun{ 70*4882a593Smuzhiyun check_config RK_PARAMETER || return 0 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun CMD=$1 73*4882a593Smuzhiyun shift 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun case "$CMD" in 76*4882a593Smuzhiyun print-parts) rk_partition_print $@ ;; 77*4882a593Smuzhiyun mod-parts) modify_partitions $@ ;; 78*4882a593Smuzhiyun edit-parts) rk_partition_edit $@ ;; 79*4882a593Smuzhiyun new-parts) rk_partition_create $@ ;; 80*4882a593Smuzhiyun insert-part) rk_partition_insert $@ ;; 81*4882a593Smuzhiyun del-part) rk_partition_del $@ ;; 82*4882a593Smuzhiyun move-part) rk_partition_move $@ ;; 83*4882a593Smuzhiyun rename-part) rk_partition_rename $@ ;; 84*4882a593Smuzhiyun resize-part) rk_partition_resize $@ ;; 85*4882a593Smuzhiyun *) 86*4882a593Smuzhiyun normalized_usage 87*4882a593Smuzhiyun exit 1 88*4882a593Smuzhiyun ;; 89*4882a593Smuzhiyun esac 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun finish_build $CMD $@ 92*4882a593Smuzhiyun} 93*4882a593Smuzhiyun 94*4882a593Smuzhiyunsource "${BUILD_HELPER:-$(dirname "$(realpath "$0")")/../build-hooks/build-helper}" 95*4882a593Smuzhiyun 96*4882a593Smuzhiyunpre_build_hook $@ 97