@@ -1250,6 +1250,43 @@ bk_emit_overlap() {
12501250 bk_emit_section " overlap:${_bk_ovl_sections} " " $_bk_ovl_time " " $_bk_ovl_package " " $_bk_ovl_artifact " --type overlap --members " $_bk_ovl_sections "
12511251}
12521252
1253+ bk_base64_encode_value () {
1254+ if command -v base64 > /dev/null 2>&1 ; then
1255+ printf ' %s' " $1 " | base64 | tr -d ' \r\n'
1256+ return 0
1257+ fi
1258+ if command -v openssl > /dev/null 2>&1 ; then
1259+ printf ' %s' " $1 " | openssl base64 -A | tr -d ' \r\n'
1260+ return 0
1261+ fi
1262+ echo " bk_base64_encode_value: neither base64 nor openssl found" >&2
1263+ return 1
1264+ }
1265+
1266+ bk_write_source_info_env () {
1267+ _bk_source_type=" $1 "
1268+ _bk_repo_url=" ${2:- } "
1269+ _bk_branch=" ${3:- } "
1270+ _bk_commit_hash=" ${4:- } "
1271+ _bk_file_path=" ${5:- } "
1272+ _bk_md5sum=" ${6:- } "
1273+
1274+ if ! command -v base64 > /dev/null 2>&1 && ! command -v openssl > /dev/null 2>&1 ; then
1275+ echo " bk_write_source_info_env: neither base64 nor openssl found" >&2
1276+ return 1
1277+ fi
1278+
1279+ {
1280+ printf ' BK_SOURCE_INFO_FORMAT=base64-v1\n'
1281+ printf ' BK_SOURCE_TYPE_B64=%s\n' " $( bk_base64_encode_value " $_bk_source_type " ) "
1282+ printf ' BK_REPO_URL_B64=%s\n' " $( bk_base64_encode_value " $_bk_repo_url " ) "
1283+ printf ' BK_BRANCH_B64=%s\n' " $( bk_base64_encode_value " $_bk_branch " ) "
1284+ printf ' BK_COMMIT_HASH_B64=%s\n' " $( bk_base64_encode_value " $_bk_commit_hash " ) "
1285+ printf ' BK_FILE_PATH_B64=%s\n' " $( bk_base64_encode_value " $_bk_file_path " ) "
1286+ printf ' BK_MD5SUM_B64=%s\n' " $( bk_base64_encode_value " $_bk_md5sum " ) "
1287+ } > results/source_info.env
1288+ }
1289+
12531290# bk_fetch_source - Fetch source code and collect metadata.
12541291#
12551292# Usage:
@@ -1273,7 +1310,7 @@ bk_emit_overlap() {
12731310# BK_MD5SUM - (file) Full 32-char md5sum
12741311#
12751312# Side effects:
1276- # Writes results/source_info.env in export format
1313+ # Writes results/source_info.env as data, not executable shell
12771314#
12781315# Returns:
12791316# 0 - success
@@ -1331,13 +1368,7 @@ bk_fetch_source() {
13311368
13321369 export BK_BRANCH BK_COMMIT_HASH
13331370
1334- # Write results/source_info.env
1335- cat > results/source_info.env << EOF
1336- export BK_SOURCE_TYPE="git"
1337- export BK_REPO_URL="$BK_REPO_URL "
1338- export BK_BRANCH="$BK_BRANCH "
1339- export BK_COMMIT_HASH="$BK_COMMIT_HASH "
1340- EOF
1371+ bk_write_source_info_env " git" " $BK_REPO_URL " " $BK_BRANCH " " $BK_COMMIT_HASH "
13411372
13421373 else
13431374 # --- File archive path ---
@@ -1380,12 +1411,7 @@ EOF
13801411 fi
13811412 fi
13821413
1383- # Write results/source_info.env
1384- cat > results/source_info.env << EOF
1385- export BK_SOURCE_TYPE="file"
1386- export BK_FILE_PATH="$BK_FILE_PATH "
1387- export BK_MD5SUM="$BK_MD5SUM "
1388- EOF
1414+ bk_write_source_info_env " file" " " " " " " " $BK_FILE_PATH " " $BK_MD5SUM "
13891415
13901416 fi
13911417
0 commit comments