Add install-systemd-service.js
This commit is contained in:
parent
280bf8df70
commit
48cac575e7
|
@ -23,6 +23,7 @@
|
|||
"recps",
|
||||
"roadmap",
|
||||
"sameorigin",
|
||||
"systemctl",
|
||||
"socio",
|
||||
"ssbc",
|
||||
"summerfruit",
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=`dirname "$0"`
|
||||
test "$XDG_CONFIG_HOME" || XDG_CONFIG_HOME=$HOME/.config
|
||||
test "$SYSTEMD_USER_HOME" || SYSTEMD_USER_HOME="$XDG_CONFIG_HOME"/systemd/user
|
||||
TARGET_PATH="$SYSTEMD_USER_HOME"/oasis.service
|
||||
|
||||
if [ -f "$TARGET_PATH" ]; then
|
||||
printf "Cowardly refusing to overwrite file: %s\n\n" "$TARGET_PATH"
|
||||
else
|
||||
mkdir -p "$SYSTEMD_USER_HOME"
|
||||
cp "$SCRIPT_DIR"/oasis.service "$TARGET_PATH"
|
||||
systemctl --user daemon-reload
|
||||
printf "Service configuration has been installed to: %s\n\n" "$TARGET_PATH"
|
||||
fi
|
||||
|
||||
printf "To start Oasis automatically in the future, run:\n\n"
|
||||
printf " systemctl --user enable oasis\n\n"
|
||||
|
||||
printf "To start and open Oasis right now, run:\n\n"
|
||||
printf " systemctl --user start oasis\n"
|
||||
printf " xdg-open http://localhost:4515\n"
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const mkdirp = require('mkdirp')
|
||||
const { execSync } = require('child_process')
|
||||
|
||||
let xdgConfigHome = process.env.XDG_CONFIG_HOME
|
||||
let systemdUserHome = process.env.SYSTEMD_USER_HOME
|
||||
|
||||
if (xdgConfigHome == null) {
|
||||
// Note: path.join() throws when arguments are null-ish.
|
||||
xdgConfigHome = path.join(process.env.HOME, '.config')
|
||||
}
|
||||
|
||||
if (systemdUserHome == null) {
|
||||
systemdUserHome = path.join(xdgConfigHome, 'systemd', 'user')
|
||||
}
|
||||
|
||||
const targetPath = path.join(systemdUserHome, 'oasis.service')
|
||||
|
||||
if (fs.existsSync(targetPath)) {
|
||||
console.log('Cowardly refusing to overwrite file:', targetPath)
|
||||
} else {
|
||||
mkdirp(systemdUserHome)
|
||||
|
||||
const sourcePath = path.join(__dirname, 'oasis.service')
|
||||
fs.copyFileSync(sourcePath, targetPath)
|
||||
|
||||
execSync('systemctl', '--user', 'daemon-reload')
|
||||
console.log('Service configuration has been installed to:', targetPath)
|
||||
|
||||
// Since this isn't in a post-install script we can just enable it.
|
||||
execSync('systemctl', '--user', 'enable', 'oasis')
|
||||
}
|
||||
|
||||
console.log(`
|
||||
To start and open Oasis right now, run:
|
||||
systemctl --user start oasis
|
||||
xdg-open http://localhost:4515`)
|
|
@ -8,7 +8,7 @@ start in the background when you start your computer. This is good for SSB and
|
|||
makes it more likely that you'll download messages that you want.
|
||||
|
||||
```shell
|
||||
bash contrib/install-systemd-service.bash
|
||||
node contrib/install-systemd-service.js
|
||||
```
|
||||
|
||||
Follow the instructions to finish configuring the background service.
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
"cspell": "^4.0.43",
|
||||
"dependency-check": "^4.1.0",
|
||||
"husky": "^3.0.5",
|
||||
"mkdirp": "^0.5.1",
|
||||
"nodemon": "^2.0.2",
|
||||
"standard": "^14.3.0",
|
||||
"stylelint": "^12.0.1",
|
||||
|
|
Loading…
Reference in New Issue