@@ -5,6 +5,19 @@ repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
55tmp=" $( mktemp -d) "
66trap ' rm -rf "$tmp"' EXIT
77
8+ require_line () {
9+ pattern=" $1 "
10+ file=" $2 "
11+ label=" $3 "
12+ if ! grep -q " $pattern " " $file " ; then
13+ echo " missing expected RPM path: $label " >&2
14+ echo " expected pattern: $pattern " >&2
15+ echo " available paths:" >&2
16+ cat " $file " >&2
17+ exit 1
18+ fi
19+ }
20+
821mkdir -p " $repo_root /target/release"
922for binary in wezterm wezterm-gui wezterm-mux-server; do
1023 cat > " $repo_root /target/release/$binary " << 'EOF '
1730rpm=" $( TURTLE_TERM_OUT_DIR=" $tmp " TURTLE_TERM_VERSION=" 0.1.0" TURTLE_TERM_RPM_ARCH=" $( uname -m) " \
1831 " $repo_root /packaging/scripts/build-rpm-package.sh" ) "
1932contents=" $tmp /rpm-contents.txt"
33+ payload=" $tmp /rpm-payload.cpio"
2034extract=" $tmp /extract"
2135
2236test -f " $rpm "
@@ -42,22 +56,23 @@ rpm -qp --queryformat '%{VERSION}\n' "$rpm" | grep -qx '0.1.0'
4256rpm -qpl " $rpm " > " $contents "
4357
4458for command in turtleterm turtle-agentctl turtle-agent-status turtle-cloudfog turtle-superconscious turtle-agent-machine turtle-language turtle-session; do
45- grep -q " ^/usr/bin/$command $" " $contents "
59+ require_line " ^/usr/bin/$command $" " $contents " " /usr/bin/ $command "
4660done
4761
48- grep -q ' ^/etc/turtle-term/turtleterm.lua$' " $contents "
49- grep -q ' ^/usr/share/applications/ai.sourceos.TurtleTerm.desktop$' " $contents "
50- grep -q ' ^/usr/share/metainfo/ai.sourceos.TurtleTerm.metainfo.xml$' " $contents "
51- grep -q ' ^/usr/share/icons/hicolor/scalable/apps/ai.sourceos.TurtleTerm.svg$' " $contents "
52- grep -q ' ^/usr/libexec/turtle-term/wezterm-gui$' " $contents "
62+ require_line ' ^/etc/turtle-term/turtleterm.lua$' " $contents " ' /etc/turtle-term/turtleterm.lua '
63+ require_line ' ^/usr/share/applications/ai.sourceos.TurtleTerm.desktop$' " $contents " ' /usr/share/applications/ai.sourceos.TurtleTerm.desktop '
64+ require_line ' ^/usr/share/metainfo/ai.sourceos.TurtleTerm.metainfo.xml$' " $contents " ' /usr/share/metainfo/ai.sourceos.TurtleTerm.metainfo.xml '
65+ require_line ' ^/usr/share/icons/hicolor/scalable/apps/ai.sourceos.TurtleTerm.svg$' " $contents " ' /usr/share/icons/hicolor/scalable/apps/ai.sourceos.TurtleTerm.svg '
66+ require_line ' ^/usr/libexec/turtle-term/wezterm-gui$' " $contents " ' /usr/libexec/turtle-term/wezterm-gui '
5367
5468if grep -q ' ^/usr/bin/wezterm-gui$' " $contents " ; then
5569 echo ' private runtime leaked onto product PATH in rpm' >&2
5670 exit 1
5771fi
5872
5973mkdir -p " $extract "
60- (cd " $extract " && rpm2cpio " $rpm " | cpio -idmu > /dev/null 2>&1 )
74+ rpm2cpio " $rpm " > " $payload "
75+ (cd " $extract " && cpio -idmu < " $payload " > /dev/null 2>&1 )
6176grep -q ' TURTLE_TERM_RUNTIME_DIR="/usr/libexec/turtle-term"' " $extract /usr/bin/turtleterm"
6277grep -q ' TURTLETERM_CONFIG="/etc/turtle-term/turtleterm.lua"' " $extract /usr/bin/turtleterm"
6378grep -q ' exec "/usr/libexec/turtle-term/turtleterm"' " $extract /usr/bin/turtleterm"
0 commit comments