guowenxue
2024-06-20 705df3d275a71294406940f48dffbe05d3d5edb9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
# Description: This shell script used to generate patch file
#      Author: guowenxue <guowenxue@gmail.com>
#     Version: 1.0.0
 
# this project absolute path
PRJ_PATH=$(cd $(dirname "${BASH_SOURCE[0]}")/.. && pwd)
 
# top project absolute path
TOP_PATH=$(realpath $PRJ_PATH/..)
 
# config file path
CONF_FILE=$TOP_PATH/config.json
 
# shell script will exit once get command error
#set -e
 
#+-------------------------+
#| Shell script functions  |
#+-------------------------+
 
function pr_error() {
    echo -e "\033[40;31m $1 \033[0m"
}
 
function pr_warn() {
    echo -e "\033[40;33m $1 \033[0m"
}
 
function pr_info() {
    echo -e "\033[40;32m $1 \033[0m"
}
 
# parser configure file and export environment variable
function export_env()
{
    export SRC=$(basename $1)
    export BSP_VER=`jq -r ".bsp.version" $CONF_FILE | tr 'A-Z' 'a-z'`
    export PATCH=$SRC-$BSP_VER
}
 
function do_patch()
{
    if [ ! -d $PRJ_PATH/$SRC ] ;  then
        pr_error "\nERROR: source code $SRC not exist, exit now\n\n"
        exit;
    fi
 
    pr_info "generate patch file"
 
    cd $PRJ_PATH/$SRC
 
    git add .gitignore
    git add * 2> /dev/null
 
    git diff --cached > $PRJ_PATH/$PATCH.patch
}
 
if [ $# != 1 ] ; then
    pr_info "$0 usage example:"
    pr_info "$0 linux-imx/"
    exit
fi
 
export_env $1
do_patch