From b4e8d2162f612cf50fcd8d1a62b2f88de124e321 Mon Sep 17 00:00:00 2001 From: Chenyang Zhong Date: Fri, 19 Jun 2020 03:43:07 -0400 Subject: [PATCH] sdm710-common: add a script to update sha1sum from vendor commit USAGE: device/lenovo/sdm710-common/generate_sha1_from_commit.sh 1a2b3c4d Signed-off-by: Chenyang Zhong Signed-off-by: snnbyyds --- generate_sha1_from_commit.sh | 86 ++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 generate_sha1_from_commit.sh diff --git a/generate_sha1_from_commit.sh b/generate_sha1_from_commit.sh new file mode 100755 index 0000000..38d216a --- /dev/null +++ b/generate_sha1_from_commit.sh @@ -0,0 +1,86 @@ +#!/bin/bash +# +#============================================================================== +# SYNOPSIS +# generate_sha1_from_commit.sh args ... +# +# DESCRIPTION +# The script generates and updates proprietary-files.txt sha1sum from a +# vendor commit id. +# +# EXAMPLES +# ./generate_sha1_from_commit.sh 1a2b3c4d +# +# AUTHOR +# Chenyang Zhong +# +# HISTORY +# 2020/06/19 : Script creation +# +#============================================================================== +# +# SPDX-License-Identifier: Apache-2.0 +# + +set -e + +MY_DIR="${PWD}" + +VENDOR_DIR="${MY_DIR}"/../../../vendor/lenovo +DEVICE=sdm710-common +DIR_PREFIX="sdm710-common/proprietary/" + +cd "${VENDOR_DIR}" + +# get commit id from input +if [ "${#}" -eq 1 ]; +then + COMMIT="${1}" +else + echo >&2 "Please specify a vendor commit id." + exit 1 +fi + +# display commit id and title +echo "$(git show -s --format='%h %s' ${COMMIT})" +echo "========================================================" + +# iterate through changed files in the commit +for file in $(git diff-tree --no-commit-id --name-only -r "${COMMIT}") +do + # generate sha1 + r="$(sha1sum "$file")" + r_arr=($r) + sha1="${r_arr[0]}" + + # remove directory prefix from filename + file_stripped=${file#"${DIR_PREFIX}"} + + # iterate through lines in proprietary-files.txt until the first + # non-comment match + for line in $(grep "$file_stripped" "${MY_DIR}/proprietary-files.txt") + do + # continue if this line starts with # + [[ $line =~ ^#.* ]] && continue + + # check if it has a sha1sum already + if [[ "$line" == *"|"* ]]; then + # remove the old sha1sum and append the new one + newline="${line:0:${#line}-40}${sha1}" + else + # append the new sha1sum to it + newline="${line}|${sha1}" + fi + + # display which line is getting replaced + echo "$line ---> $newline" + + # use % as delimiter because file path contains "/" + sedstr="s%^$line\$%$newline%" + sed -i "$sedstr" "${MY_DIR}/proprietary-files.txt" + + # exit after the first replacement + break + done + +done