diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1c35460 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +env +*~ \ No newline at end of file diff --git a/env.example b/env.example new file mode 100644 index 0000000..1549c89 --- /dev/null +++ b/env.example @@ -0,0 +1 @@ +export SUSPEND_SECRET=some-password \ No newline at end of file diff --git a/game-runner/#setup.sh# b/game-runner/#setup.sh# new file mode 100755 index 0000000..e5835f2 --- /dev/null +++ b/game-runner/#setup.sh# @@ -0,0 +1,21 @@ +#!/bin/bash + +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +echo $SCRIPT_DIR + +sudo tee /etc/systemd/system/game-runner.service < { + if (req.method === 'POST' && req.url === '/suspend') { + let body = ''; + req.on('data', chunk => body += chunk); + req.on('end', () => { + if (body === SECRET) { + exec('systemctl suspend', (err, stdout, stderr) => { + if (err) { + console.error('Suspend failed:', stderr); + return res.writeHead(500).end('error'); + } + console.log('Suspending now'); + res.writeHead(200).end('ok'); + }); + } else { + res.writeHead(403).end('forbidden'); + } + }); + } else { + res.writeHead(404).end('not found'); + } +}); + +server.listen(PORT, () => { + console.log(`Suspend-server listening on port ${PORT}`); +}); diff --git a/suspend-listener/setup.sh b/suspend-listener/setup.sh new file mode 100644 index 0000000..6afa64d --- /dev/null +++ b/suspend-listener/setup.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +echo $SCRIPT_DIR + +sudo tee /etc/systemd/system/suspend-listener.service <