mirror of https://github.com/nocturn9x/nimd.git
Added working directory and streams options to services
This commit is contained in:
parent
fea5e625e2
commit
611f97d1e6
|
@ -68,6 +68,7 @@ provides = ssh # Dependents can also be providers
|
|||
restart = always # Other options are: never, onFailure
|
||||
restartDelay = 10 # NimD will wait this many seconds before trying to start it again
|
||||
supervised = true # This is the default. Disable it if you don't need NimD to watch for it
|
||||
workDir = /usr/bin # The service's working directory
|
||||
|
||||
[Logging]
|
||||
|
||||
|
|
|
@ -63,6 +63,9 @@ type
|
|||
depends: seq[Dependency]
|
||||
provides: seq[Dependency]
|
||||
useParentStreams: bool
|
||||
stdin: string
|
||||
stdout: string
|
||||
stderr: string
|
||||
## These two fields are
|
||||
## used by the dependency
|
||||
## resolver
|
||||
|
@ -77,11 +80,12 @@ proc newDependency*(kind: DependencyKind, provider: Service): Dependency =
|
|||
|
||||
|
||||
proc newService*(name, description: string, kind: ServiceKind, workDir: string, runlevel: RunLevel, exec: string, supervised: bool, restart: RestartKind,
|
||||
restartDelay: int, depends, provides: seq[Dependency], useParentStreams: bool = false): Service =
|
||||
restartDelay: int, depends, provides: seq[Dependency], useParentStreams: bool = false, stdin, stdout, stderr: string): Service =
|
||||
## Creates a new service object
|
||||
result = Service(name: name, description: description, kind: kind, workDir: workDir, runLevel: runLevel,
|
||||
exec: exec, supervised: supervised, restart: restart, restartDelay: restartDelay,
|
||||
depends: depends, provides: provides, isMarked: false, isResolved: false, useParentStreams: useParentStreams)
|
||||
depends: depends, provides: provides, isMarked: false, isResolved: false, useParentStreams: useParentStreams,
|
||||
stdin: stdin, stdout: stdout, stderr: stderr)
|
||||
result.provides.add(newDependency(Other, result))
|
||||
|
||||
|
||||
|
|
15
src/main.nim
15
src/main.nim
|
@ -46,23 +46,26 @@ proc addStuff =
|
|||
var echoer = newService(name="echoer", description="prints owo", exec="/bin/echo owoooooooooo",
|
||||
runlevel=Boot, kind=Oneshot, workDir=getCurrentDir(),
|
||||
supervised=false, restart=Never, restartDelay=0,
|
||||
depends=(@[]), provides=(@[]))
|
||||
depends=(@[]), provides=(@[]), stdin="/dev/null", stderr="", stdout="")
|
||||
var errorer = newService(name="errorer", description="la mamma di gavd",
|
||||
exec="/bin/false", supervised=true, restart=OnFailure,
|
||||
restartDelay=5, runlevel=Boot, workDir="/", kind=Simple,
|
||||
depends=(@[newDependency(Other, echoer)]), provides=(@[]))
|
||||
depends=(@[newDependency(Other, echoer)]), provides=(@[]),
|
||||
stdin="/dev/null", stderr="", stdout="")
|
||||
var test = newService(name="broken", description="", exec="/bin/echo owo",
|
||||
runlevel=Boot, kind=Oneshot, workDir=getCurrentDir(),
|
||||
supervised=false, restart=Never, restartDelay=0,
|
||||
depends=(@[newDependency(Other, echoer)]), provides=(@[]))
|
||||
depends=(@[newDependency(Other, echoer)]), provides=(@[]),
|
||||
stdin="/dev/null", stderr="", stdout="")
|
||||
var exiter = newService(name="exiter", description="la mamma di licenziat",
|
||||
exec="/bin/true", supervised=true, restart=Always,
|
||||
restartDelay=5, runlevel=Boot, workDir="/", kind=Simple,
|
||||
depends=(@[newDependency(Other, errorer)]), provides=(@[]))
|
||||
depends=(@[newDependency(Other, errorer)]), provides=(@[]),
|
||||
stdin="/dev/null", stderr="", stdout="")
|
||||
var shell = newService(name="login", description="A simple login shell", kind=Simple,
|
||||
getCurrentDir(), runlevel=Boot, exec="/bin/login -f root",
|
||||
workDir=getCurrentDir(), runlevel=Boot, exec="/bin/login -f root",
|
||||
supervised=true, restart=Always, restartDelay=0, depends=(@[]), provides=(@[]),
|
||||
useParentStreams=true
|
||||
useParentStreams=true, stdin="/dev/null", stderr="", stdout=""
|
||||
)
|
||||
addService(errorer)
|
||||
addService(echoer)
|
||||
|
|
Loading…
Reference in New Issue