|
|
|
@ -1,5 +1,7 @@
|
|
|
|
|
import docopt, json, osproc, posix, nre, streams, strutils, strtabs
|
|
|
|
|
import docopt, json, osproc, posix, nre, streams, strtabs, unicode
|
|
|
|
|
import os except sleep
|
|
|
|
|
import strutils except toUpper, toLower
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
CombinedConfig* = object
|
|
|
|
@ -71,7 +73,7 @@ proc exec*(command: string, workingDir: string = "",
|
|
|
|
|
args: openArray[string] = [], env: StringTableRef = nil,
|
|
|
|
|
options: set[ProcessOption] = {poUsePath},
|
|
|
|
|
msgCB: HandleProcMsgCB = nil): int
|
|
|
|
|
{.tags: [ExecIOEffect, ReadIOEffect], gcsafe.} =
|
|
|
|
|
{.tags: [ExecIOEffect, ReadIOEffect, RootEffect], gcsafe.} =
|
|
|
|
|
|
|
|
|
|
var p = startProcess(command, workingDir, args, env, options)
|
|
|
|
|
result = waitFor(p, msgCB, command)
|
|
|
|
@ -108,7 +110,7 @@ proc onStop(sig: cint) {.noconv.} =
|
|
|
|
|
|
|
|
|
|
quit(QuitSuccess)
|
|
|
|
|
|
|
|
|
|
proc daemonize*(pidfile, si, so, se: string, daemonMain: proc(): void): int =
|
|
|
|
|
proc daemonize*(pidfile, si, so, se: string, daemonMain: proc(): void): Pid =
|
|
|
|
|
|
|
|
|
|
if fileExists(pidfile):
|
|
|
|
|
raise newException(IOError, "pidfile " & pidfile & " already exists, daemon already running?")
|
|
|
|
|