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