File tree 2 files changed +54
-10
lines changed
2 files changed +54
-10
lines changed Original file line number Diff line number Diff line change
1
+ #! @shell@
2
+
3
+ _EXTRA_ARGS=" $@ "
4
+
5
+ if (( ${VERBOSE:- 0} )) ; then
6
+ set -x
7
+ fi
8
+
9
+ _DATE_BIN=@dateBin@
10
+ _VCS_SIM_BIN=@vcsSimBin@
11
+ _VCS_SIM_DAIDIR=@vcsSimDaidir@
12
+ _VCS_FHS_ENV=@vcsFhsEnv@
13
+
14
+ _NOW=$( " $_DATE_BIN " " +%Y-%m-%d-%H-%M-%S" )
15
+ _GCD_SIM_RESULT_DIR=${GCD_SIM_RESULT_DIR:- " gcd-sim-result" }
16
+ _CURRENT=" $_GCD_SIM_RESULT_DIR " /all/" $_NOW "
17
+ mkdir -p " $_CURRENT "
18
+ ln -sf " all/$_NOW " " $_GCD_SIM_RESULT_DIR /result"
19
+
20
+ cp " $_VCS_SIM_BIN " " $_CURRENT /"
21
+ cp -r " $_VCS_SIM_DAIDIR " " $_CURRENT /"
22
+
23
+ chmod -R +w " $_CURRENT "
24
+
25
+ pushd " $_CURRENT " > /dev/null
26
+
27
+ _emu_name=$( basename " $_VCS_SIM_BIN " )
28
+ _daidir=$( basename " $_VCS_SIM_DAIDIR " )
29
+
30
+ export LD_LIBRARY_PATH=" $PWD /$_daidir :$LD_LIBRARY_PATH "
31
+
32
+ " $_VCS_FHS_ENV " -c " ./$_emu_name $_EXTRA_ARGS " & > >( tee vcs-emu-journal.log)
33
+
34
+ if (( ${DATA_ONLY:- 0} )) ; then
35
+ rm -f " ./$_emu_name "
36
+ fi
37
+
38
+ set -e _emu_name _daidir
39
+
40
+ popd > /dev/null
41
+
42
+ echo " VCS emulator finished, result saved in $_GCD_SIM_RESULT_DIR /result"
Original file line number Diff line number Diff line change @@ -58,9 +58,12 @@ stdenv.mkDerivation (finalAttr: {
58
58
inherit rtl ;
59
59
60
60
tests . simple-sim = runCommand "${ binName } -test" { __noChroot = true ; } ''
61
- # Combine stderr and stdout and redirect them to tee
62
- # So that we can have log saving to output and also printing to stdout
63
- ${ finalAttr . finalPackage } /bin/${ binName } &> >(tee $out)
61
+ export GCD_SIM_RESULT_DIR="$(mktemp -d)"
62
+ export DATA_ONLY=1
63
+ ${ finalAttr . finalPackage } /bin/${ binName }
64
+
65
+ mkdir -p "$out"
66
+ cp -vr "$GCD_SIM_RESULT_DIR"/result/* "$out/"
64
67
'' ;
65
68
} ;
66
69
@@ -76,13 +79,12 @@ stdenv.mkDerivation (finalAttr: {
76
79
cp ${ binName } $out/lib
77
80
cp -r ${ binName } .daidir $out/lib
78
81
79
- # We need to carefully handle string escape here, so don't use makeWrapper
80
- tee $out/bin/${ binName } <<EOF
81
- #!${ bash } /bin/bash
82
- export LD_LIBRARY_PATH="$out/lib/${ binName } .daidir:\$LD_LIBRARY_PATH"
83
- _argv="\$@"
84
- ${ vcs-fhs-env } /bin/vcs-fhs-env -c "$out/lib/${ binName } \$_argv"
85
- EOF
82
+ substitute ${ ./vcs-wrapper.sh } $out/bin/${ binName } \
83
+ --subst-var-by shell "${ bash } /bin/bash" \
84
+ --subst-var-by dateBin "$(command -v date)" \
85
+ --subst-var-by vcsSimBin "$out/lib/${ binName } " \
86
+ --subst-var-by vcsSimDaidir "$out/lib/${ binName } .daidir" \
87
+ --subst-var-by vcsFhsEnv "${ vcs-fhs-env } /bin/vcs-fhs-env"
86
88
chmod +x $out/bin/${ binName }
87
89
88
90
runHook postInstall
You can’t perform that action at this time.
0 commit comments