xref: /OK3568_Linux_fs/device/rockchip/common/scripts/mk-partitions.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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