chore: service progress
This commit is contained in:
@@ -2,21 +2,23 @@
|
||||
"name": "nexe-daemon",
|
||||
"version": "1.0.0",
|
||||
"description": "Plugin for nexe to create installable services",
|
||||
"main": "index.js",
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
"clean": "rimraf *.js",
|
||||
"build": "tsc",
|
||||
"postpublish": "npm run clean"
|
||||
},
|
||||
"files": [
|
||||
"*.js",
|
||||
"lib",
|
||||
"winsw.exe"
|
||||
],
|
||||
"author": "Caleb Boyd",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"nexe": "^2.0.0-rc.6",
|
||||
"rimraf": "^2.6.2",
|
||||
"typescript": "^2.5.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"nexe": "^2.0.0-rc.11"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,13 +22,12 @@ export default function daemon (compiler: NexeCompiler<DaemonOptions>, next: ()
|
||||
if (compiler.target.platform !== 'windows') {
|
||||
return next()
|
||||
}
|
||||
|
||||
compiler.addResource(
|
||||
'./nexe/plugin/daemon/winsw.exe',
|
||||
readFileSync(require.resolve('./winsw.exe'))
|
||||
readFileSync(require.resolve('../winsw.exe'))
|
||||
)
|
||||
const name = compiler.options.name,
|
||||
options = compiler.options.daemon.windows,
|
||||
options = compiler.options.daemon && compiler.options.daemon.windows || {},
|
||||
defaults: NexeDaemonOptions = {
|
||||
id: name,
|
||||
name,
|
||||
@@ -37,7 +36,7 @@ export default function daemon (compiler: NexeCompiler<DaemonOptions>, next: ()
|
||||
}
|
||||
|
||||
compiler.addResource(
|
||||
'./nexe/plugin/daemon/winsw-config.xml',
|
||||
'./nexe/plugin/daemon/winsw.xml',
|
||||
Buffer.from(renderWinswConfig(Object.assign(defaults, options)))
|
||||
)
|
||||
compiler.addResource(
|
||||
|
||||
@@ -1,4 +1,69 @@
|
||||
console.log('hello world')
|
||||
if (true) {
|
||||
console.log('wat')
|
||||
const installCommands = ['-i', '--install']
|
||||
const installIndex = process.argv.findIndex(x => installCommands.includes(x))
|
||||
import * as path from 'path'
|
||||
import * as fs from 'fs'
|
||||
import * as cp from 'child_process'
|
||||
|
||||
function mkdirp (r: string, t?: any): any {
|
||||
;(t = t || null), (r = path.resolve(r))
|
||||
try {
|
||||
fs.mkdirSync(r), (t = t || r)
|
||||
} catch (c) {
|
||||
if ('ENOENT' === c.code) (t = mkdirp(path.dirname(r), t)), mkdirp(r, t)
|
||||
else {
|
||||
var i
|
||||
try {
|
||||
i = fs.statSync(r)
|
||||
} catch (r) {
|
||||
throw c
|
||||
}
|
||||
if (!i.isDirectory()) throw c
|
||||
}
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
||||
if (~installIndex) {
|
||||
console.log('DIRECTORY FOUND')
|
||||
const directory = process.argv[installIndex + 1]
|
||||
if (directory) {
|
||||
mkdirp(path.dirname(directory))
|
||||
const filename = path.join(directory, path.basename(process.execPath))
|
||||
const readStream = fs.createReadStream(process.execPath)
|
||||
const writeStream = fs.createWriteStream(filename)
|
||||
|
||||
const onError = function () {
|
||||
readStream.removeAllListeners()
|
||||
writeStream.removeAllListeners()
|
||||
//TODO
|
||||
}
|
||||
|
||||
readStream
|
||||
.on('error', onError)
|
||||
.pipe(writeStream)
|
||||
.on('error', onError)
|
||||
.on('close', () => {
|
||||
const winsw = filename.replace('.exe', '-service.exe')
|
||||
fs.writeFileSync(
|
||||
winsw,
|
||||
fs.readFileSync('./nexe/plugin/daemon/winsw.exe')
|
||||
)
|
||||
fs.writeFileSync(
|
||||
filename.replace('.exe', '-service.xml'),
|
||||
fs.readFileSync('./nexe/plugin/daemon/winsw.xml')
|
||||
)
|
||||
installService(winsw)
|
||||
})
|
||||
}
|
||||
} else {
|
||||
console.log("DIRECTORY NOT FOUND")
|
||||
require('./nexe/plugin/daemon/app.js')
|
||||
}
|
||||
|
||||
function installService (filename: string) {
|
||||
cp.exec(filename + ' install', (error) => {
|
||||
if (error && !error.message.includes('already exists')) {
|
||||
throw error
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1458,9 +1458,9 @@ negotiator@0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
|
||||
|
||||
nexe@^2.0.0-rc.6:
|
||||
version "2.0.0-rc.6"
|
||||
resolved "https://registry.yarnpkg.com/nexe/-/nexe-2.0.0-rc.6.tgz#b3990bb67098a93bc488b21ad88aee67b62cf0d5"
|
||||
nexe@^2.0.0-rc.11:
|
||||
version "2.0.0-rc.11"
|
||||
resolved "https://registry.yarnpkg.com/nexe/-/nexe-2.0.0-rc.11.tgz#cd06fc91da8db008fffa6dde1a9a8dd6decf2c35"
|
||||
dependencies:
|
||||
app-builder "^5.1.0"
|
||||
chalk "^1.1.3"
|
||||
|
||||
Reference in New Issue
Block a user