diff --git a/puppet/package.json b/puppet/package.json index 06874c1..04e955f 100644 --- a/puppet/package.json +++ b/puppet/package.json @@ -1,7 +1,7 @@ { - "name": "matrix-puppeteer-line-puppeteer", + "name": "matrix-puppeteer-line-chrome", "version": "0.1.0", - "description": "Puppeteer module for matrix-puppeteer-line", + "description": "Chrome/Puppeteer backend for matrix-puppeteer-line", "repository": { "type": "git", "url": "git+https://src.miscworks.net/fair/matrix-puppeteer-line.git" @@ -20,6 +20,7 @@ "dependencies": { "arg": "^4.1.3", "chrono-node": "^2.1.7", + "systemd-daemon": "^1.1.2", "puppeteer": "9.1.1" }, "devDependencies": { diff --git a/puppet/src/main.js b/puppet/src/main.js index c9542b9..c262754 100644 --- a/puppet/src/main.js +++ b/puppet/src/main.js @@ -15,6 +15,7 @@ // along with this program. If not, see . import process from "process" import fs from "fs" +import sd from "systemd-daemon" import arg from "arg" @@ -57,6 +58,7 @@ function stop() { api.start().then(() => { process.once("SIGINT", stop) process.once("SIGTERM", stop) + sd.notify("READY=1") }, err => { console.error("[Main] Error starting:", err) process.exit(2) diff --git a/puppet/yarn.lock b/puppet/yarn.lock index 79a23af..244a88d 100644 --- a/puppet/yarn.lock +++ b/puppet/yarn.lock @@ -228,6 +228,13 @@ base64-js@^1.0.2: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +bindings@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bl@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" @@ -623,6 +630,11 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -954,6 +966,11 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +nan@^2.13.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -1376,6 +1393,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +systemd-daemon@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/systemd-daemon/-/systemd-daemon-1.1.2.tgz#63171f4353e0f96ef2d2257a5e6258cb89136cc3" + integrity sha512-1s3JH5W78WYQI6iAQdsgoz9LMO5Sj5OtanjeNopJ15iX2q6QupRvkG5SQPJIj+YN3IgUMqPbtzfWxweCVKe28g== + optionalDependencies: + unix-dgram "^2.0.2" + table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -1452,6 +1476,14 @@ unbzip2-stream@^1.3.3: buffer "^5.2.1" through "^2.3.8" +unix-dgram@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/unix-dgram/-/unix-dgram-2.0.4.tgz#14d4fc21e539742b8fb027de16eccd4e5503a344" + integrity sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw== + dependencies: + bindings "^1.3.0" + nan "^2.13.2" + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" diff --git a/systemd/matrix-puppeteer-line-chrome.service b/systemd/matrix-puppeteer-line-chrome.service new file mode 100644 index 0000000..a3b47f1 --- /dev/null +++ b/systemd/matrix-puppeteer-line-chrome.service @@ -0,0 +1,18 @@ +[Unit] +Description=Chrome/Puppeteer backend for matrix-puppeteer-line +After=multi-user.target network.target + +[Service] +; User=matrix-puppeteer-line +; Group=matrix-puppeteer-line +Type=notify +NotifyAccess=all +WorkingDirectory=/opt/matrix-puppeteer-line/puppet +ConfigurationDirectory=matrix-puppeteer-line +RuntimeDirectory=matrix-puppeteer-line +ExecStart=/usr/bin/xvfb-run -a yarn start --config ${CONFIGURATION_DIRECTORY}/puppet-config.json +Restart=on-failure +RestartSec=3 + +[Install] +WantedBy=multi-user.target diff --git a/systemd/matrix-puppeteer-line.service b/systemd/matrix-puppeteer-line.service new file mode 100644 index 0000000..6b60870 --- /dev/null +++ b/systemd/matrix-puppeteer-line.service @@ -0,0 +1,18 @@ +[Unit] +Description=matrix-puppeteer-line bridge +BindsTo=matrix-puppeteer-line-chrome.service +PartOf=matrix-puppeteer-line-chrome.service +After=matrix-puppeteer-line-chrome.service + +[Service] +; User=matrix-puppeteer-line +; Group=matrix-puppeteer-line +WorkingDirectory=/opt/matrix-puppeteer-line +ConfigurationDirectory=matrix-puppeteer-line +RuntimeDirectory=matrix-puppeteer-line +ExecStart=/opt/matrix-puppeteer-line/.venv/bin/python -m matrix_puppeteer_line -c ${CONFIGURATION_DIRECTORY}/config.yaml +Restart=on-failure +RestartSec=3 + +[Install] +WantedBy=multi-user.target