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