@haibun/utils 1.51.11 → 1.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/walkthrough-container/index.js +10 -6
- package/build/walkthrough-container/index.js.map +1 -1
- package/package.json +2 -2
- package/walkthrough-container/Dockerfile +3 -0
- package/walkthrough-container/docker-compose.yml +2 -0
- package/walkthrough-container/entrypoint.sh +47 -44
- package/walkthrough-container/serve.json +8 -0
- package/walkthrough-container/speak-to-wav.sh +2 -2
|
@@ -37,8 +37,8 @@ const runContainer = (testToRun, filter, includeDirs = [], recreate) => {
|
|
|
37
37
|
}).join('\n');
|
|
38
38
|
const buildContextDir = resolve(tmpdir(), `build-context-${Date.now()}`);
|
|
39
39
|
mkdirSync(buildContextDir, { recursive: true });
|
|
40
|
-
// Copy project's
|
|
41
|
-
execSync(`cp ${projectDir}
|
|
40
|
+
// Copy project's json files to build context
|
|
41
|
+
execSync(`cp ${projectDir}/*.json ${buildContextDir}/`);
|
|
42
42
|
// Copy container files to build context
|
|
43
43
|
execSync(`cp ${utilDir}/*.sh ${utilDir}/kokoro-speak.cjs ${buildContextDir}/`);
|
|
44
44
|
const composeFile = `
|
|
@@ -86,9 +86,13 @@ ${volumeConfig}
|
|
|
86
86
|
};
|
|
87
87
|
let recreate = false;
|
|
88
88
|
const args = process.argv.slice(2).reduce((acc, arg) => {
|
|
89
|
-
if (arg
|
|
90
|
-
recreate
|
|
91
|
-
|
|
89
|
+
if (arg.startsWith('--')) {
|
|
90
|
+
if (arg === '--recreate') {
|
|
91
|
+
recreate = true;
|
|
92
|
+
return acc;
|
|
93
|
+
}
|
|
94
|
+
console.error(`unknown -- arg ${arg}`);
|
|
95
|
+
printHelp();
|
|
92
96
|
}
|
|
93
97
|
else if (arg === '--help') {
|
|
94
98
|
printHelp();
|
|
@@ -101,7 +105,7 @@ if (!testToRun || includeDirs.length === 0) {
|
|
|
101
105
|
}
|
|
102
106
|
runContainer(testToRun, filter, includeDirs, recreate);
|
|
103
107
|
function printHelp() {
|
|
104
|
-
console.error(`Usage: ${process.argv[1]} [--
|
|
108
|
+
console.error(`Usage: ${process.argv[1]} [--recreate] script filter features files ...`);
|
|
105
109
|
process.exit(1);
|
|
106
110
|
}
|
|
107
111
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/walkthrough-container/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAc,EAAE,EAAE;IACnD,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACF,CAAC,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,WAAW,CAAC;AAE9C,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE;IACtE,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,2BAA2B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,UAAU,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtI,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,kCAAkC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,sCAAsC;QACtC,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,CAAC;QAChD,iDAAiD;QACjD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,WAAW,UAAU,SAAS,GAAG,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/walkthrough-container/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haibun/utils",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.52.1",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"files": [
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"author": "",
|
|
28
28
|
"license": "ISC",
|
|
29
29
|
"gitHead": "7cf9680bd922fb622fb59f1e6bf5b65284cb8fd5",
|
|
30
|
-
"dependencies": { "@haibun/cli": "1.
|
|
30
|
+
"dependencies": { "@haibun/cli": "1.52.0", "@haibun/core": "1.52.0" }
|
|
31
31
|
}
|
|
@@ -29,6 +29,9 @@ RUN apt-get update && apt-get install -y \
|
|
|
29
29
|
libportaudio2 \
|
|
30
30
|
&& rm -rf /var/lib/apt/lists/*
|
|
31
31
|
|
|
32
|
+
RUN git clone https://github.com/novnc/noVNC.git /opt/noVNC && \
|
|
33
|
+
git clone https://github.com/novnc/websockify /opt/noVNC/utils/websockify
|
|
34
|
+
|
|
32
35
|
RUN sed -i 's/geteuid/getppid/' /usr/bin/vlc
|
|
33
36
|
|
|
34
37
|
WORKDIR /app
|
|
@@ -2,55 +2,58 @@
|
|
|
2
2
|
|
|
3
3
|
LOGFILE=./output/container-setup.log
|
|
4
4
|
|
|
5
|
-
rm output/walkthrough.webm 2
|
|
5
|
+
rm output/walkthrough.webm 2>/dev/null
|
|
6
6
|
|
|
7
7
|
echo "entrypoint is setting up the environment (logfile is $LOGFILE)"
|
|
8
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
9
|
+
mkdir -p /run/dbus
|
|
10
|
+
dbus-daemon --system --fork
|
|
11
|
+
|
|
12
|
+
export XDG_RUNTIME_DIR=/tmp
|
|
13
|
+
|
|
14
|
+
# Start Xvfb in the background
|
|
15
|
+
echo "Setup Xvfb..."
|
|
16
|
+
Xvfb $DISPLAY -screen 0 ${RES}x24 -ac +extension GLX +render -noreset &
|
|
17
|
+
|
|
18
|
+
# Start x11vnc
|
|
19
|
+
echo "Setup x11vnc..."
|
|
20
|
+
x11vnc -display $DISPLAY -forever -noxdamage -shared -nopw -quiet &
|
|
21
|
+
# In entrypoint.sh, after starting x11vnc
|
|
22
|
+
echo "Starting noVNC websockify proxy on port 8080..."
|
|
23
|
+
/opt/noVNC/utils/novnc_proxy --vnc localhost:5900 --listen 8080 &
|
|
24
|
+
|
|
25
|
+
# Start pipewire server
|
|
26
|
+
echo "Starting pipewire..."
|
|
27
|
+
pipewire &
|
|
28
|
+
wireplumber &
|
|
29
|
+
pipewire-pulse &
|
|
30
|
+
|
|
31
|
+
echo "Waiting for audio services to be ready..."
|
|
32
|
+
max_attempts=10
|
|
33
|
+
attempt=1
|
|
34
|
+
while ! pactl info >/dev/null 2>&1; do
|
|
35
|
+
echo "Waiting for audio services... attempt $attempt of $max_attempts"
|
|
36
|
+
if [ $attempt -ge $max_attempts ]; then
|
|
37
|
+
echo "Audio services failed to start after $max_attempts attempts"
|
|
38
|
+
cat "$LOGFILE"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
sleep 1
|
|
42
|
+
attempt=$((attempt + 1))
|
|
43
|
+
done
|
|
44
|
+
pactl info
|
|
45
|
+
|
|
46
|
+
# Load the virtual sink and set it as default
|
|
47
|
+
echo "Setting up virtual sink..."
|
|
48
|
+
pactl load-module module-virtual-sink sink_name=v1
|
|
49
|
+
pactl set-default-sink v1
|
|
50
|
+
pactl set-default-source v1.monitor
|
|
51
|
+
|
|
52
|
+
} >"$LOGFILE" 2>&1
|
|
49
53
|
|
|
50
54
|
echo "About to run $COMMAND_TO_RECORD"
|
|
51
55
|
eval "$COMMAND_TO_RECORD"
|
|
52
56
|
echo "created file://${HOST_PROJECT_DIR}/walkthrough.webm"
|
|
53
|
-
SLEEPTIME=
|
|
54
|
-
echo "Waiting for $SLEEPTIME seconds
|
|
57
|
+
SLEEPTIME=2
|
|
58
|
+
echo "Waiting for $SLEEPTIME seconds."
|
|
55
59
|
sleep $SLEEPTIME
|
|
56
|
-
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
set -e
|
|
4
4
|
|
|
5
|
-
if [ ! -d "node_modules/kokoro-js" ]; then
|
|
5
|
+
(if [ ! -d "node_modules/kokoro-js" ]; then
|
|
6
6
|
echo "kokoro-js not found, installing..."
|
|
7
7
|
npm install --no-save kokoro-js
|
|
8
|
-
fi
|
|
8
|
+
fi) > install-kokoro.log 2>&1
|
|
9
9
|
|
|
10
10
|
node ./kokoro-speak.cjs output.wav "$*"; echo `pwd`/output.wav
|