xref: /OK3568_Linux_fs/device/rockchip/common/scripts/release-doc.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/bash -e
2
3SCRIPTS_DIR="$(dirname "$(realpath "$BASH_SOURCE")")"
4DEVICE_DIR="$(realpath "$SCRIPTS_DIR/../../")"
5SDK_DIR="$(realpath "$DEVICE_DIR/../../")"
6CHIPS_DIR="$DEVICE_DIR/.chips"
7
8choose_chip()
9{
10	CHIP_ARRAY=( $(ls "$CHIPS_DIR") )
11	CHIP_ARRAY_LEN=${#CHIP_ARRAY[@]}
12	echo "Pick a chip:"
13	echo ""
14
15	echo ${CHIP_ARRAY[@]} | xargs -n 1 | sed "=" | sed "N;s/\n/. /"
16
17	local INDEX
18	read -p "Which would you like? [1]: " INDEX
19	INDEX=$((${INDEX:-1} - 1))
20	CHIP="${CHIP_ARRAY[$INDEX]}"
21}
22
23CHIP=$1
24if [ -z "$CHIP" -o ! -e "$CHIPS_DIR/$CHIP" ]; then
25	choose_chip
26	[ "$CHIP" ] || exit 1
27fi
28
29DOC_DIR="$2"
30if [ -z "$DOC_DIR" ]; then
31	for d in $(find "$SDK_DIR/docs" -name Socs); do
32		"$0" "$CHIP" "$d"
33	done
34	exit 0
35fi
36
37SOC_DIR=$(echo $CHIP | tr '[:lower:]' '[:upper:]')
38if [ ! -d "$DOC_DIR/$SOC_DIR" ]; then
39	echo "There's no doc for $CHIP in $DOC_DIR"
40	exit 0
41fi
42
43echo "Releasing docs for $CHIP in $DOC_DIR"
44
45cd "$DOC_DIR"
46
47ORIG_COMMIT=$(git log --oneline -1 | cut -d' ' -f1)
48
49COMMIT_MSG=$(mktemp)
50cat << EOF > $COMMIT_MSG
51Release $CHIP - $(date +%Y-%m-%d)
52
53Based on:
54$(git log -1 --format="%h %s")
55EOF
56
57git add -f .
58git stash &>/dev/null
59
60# Drop other docs
61DOCS="$(ls)"
62mv "$SOC_DIR"/* .
63rm -rf $DOCS
64
65# Create new branch
66git branch -D $CHIP &>/dev/null || true
67git checkout --orphan $CHIP &>/dev/null
68git reset &>/dev/null
69git add .
70git commit -s -F $COMMIT_MSG &>/dev/null
71rm -f $COMMIT_MSG
72
73# Recover
74git checkout $ORIG_COMMIT &>/dev/null
75cd "$SDK_DIR"
76