-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathextract_postprocessing.sh
More file actions
executable file
·44 lines (37 loc) · 1.27 KB
/
extract_postprocessing.sh
File metadata and controls
executable file
·44 lines (37 loc) · 1.27 KB
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
#!/usr/bin/env bash
# SPDX-License-Identifier: MIT
# Copyright (c) 2025 Samuel Hym, Tarides <samuel@tarides.com>
# Unikraft says in various places it requires bash, so we can follow suit, to
# use its powerful ${v//"$var"/...} substitution
# extract_postprocessing <unikraftdir> <builddir> <targetradix> <targetsuffix>
UNIKRAFTDIR="${1%/}"
REALUNIKRAFTDIR="$(realpath "$UNIKRAFTDIR")"
BUILDDIR="${2%/}"
REALBUILDDIR="$(realpath "$BUILDDIR")"
TARGETRDX="$3"
PATHTARGET="$BUILDDIR/$TARGETRDX"
REALPATHTARGET="$REALBUILDDIR/$TARGETRDX"
TARGETSUFFIX="$(< "$4")"
IFS='\n'
process() {
while read line; do
case "$line" in
"sh "*.cmd|"/bin/sh "*.cmd|"bash "*.cmd|*"/bash "*.cmd)
# Process the content of the .cmd file
process < "${line#* }"
;;
*)
line="${line//"$PATHTARGET"/\"\$\{TARGET\}\"}"
line="${line//"$REALPATHTARGET"/\"\$\{TARGET\}\"}"
line="${line//"$TARGETRDX"/\"\$\{TARGET\}\"}"
line="${line//"$BUILDDIR"/\"\$\{LIBDIR\}\"}"
line="${line//"$REALBUILDDIR"/\"\$\{LIBDIR\}\"}"
line="${line//"$UNIKRAFTDIR"/\"\$\{UKLIBDIR\}\"}"
line="${line//"$REALUNIKRAFTDIR"/\"\$\{UKLIBDIR\}\"}"
echo " $line"
;;
esac
done
}
echo ' mv "$TARGET" "$TARGET".'"$TARGETSUFFIX"
process