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