12345678910111213141516171819202122232425262728293031323334353637 |
- const fs = require("fs");
- const path = require("path");
- const mkdirp = require("mkdirp");
- const { execSync } = require("child_process");
- const open = require("open");
- 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.sync(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 enable, start, and open it.
- execSync("systemctl --user enable oasis");
- execSync("systemctl --user start oasis");
- open("http://localhost:4515");
|