refactor: improve zinit process handling
- Improved error handling in `get` method of Zinit struct. - Changed the return type of `new()` function in `zinit_factory.v` to `!&Zinit`. - Updated `zinit_global_manager` to hold references to `Zinit` instances. Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
This commit is contained in:
@@ -91,8 +91,11 @@ fn (mut zinit Zinit) cmd_write(name string, cmd string, cat string, env map[stri
|
||||
|
||||
pub fn (mut zinit Zinit) get(name_ string) !ZProcess {
|
||||
name := texttools.name_fix(name_)
|
||||
// console.print_debug(zinit)
|
||||
return zinit.processes[name] or { return error("cannot find process in zinit:'${name}'") }
|
||||
if zinit.processes.keys().contains(name) {
|
||||
return zinit.processes[name]
|
||||
}
|
||||
|
||||
return error("cannot find process in zinit:'${name}'")
|
||||
}
|
||||
|
||||
pub fn (mut zinit Zinit) exists(name_ string) bool {
|
||||
|
||||
@@ -5,16 +5,16 @@ import freeflowuniverse.herolib.ui.console
|
||||
import freeflowuniverse.herolib.osal
|
||||
|
||||
__global (
|
||||
zinit_global_manager []Zinit
|
||||
zinit_global_manager []&Zinit
|
||||
)
|
||||
|
||||
pub fn new() !Zinit {
|
||||
pub fn new() !&Zinit {
|
||||
if zinit_global_manager.len == 0 {
|
||||
mut z := Zinit{
|
||||
path: pathlib.get_dir(path: '/etc/zinit', create: true)!
|
||||
pathcmds: pathlib.get_dir(path: '/etc/zinit/cmds', create: true)!
|
||||
}
|
||||
zinit_global_manager << z
|
||||
zinit_global_manager << &z
|
||||
z.load()!
|
||||
}
|
||||
return zinit_global_manager[0]
|
||||
|
||||
Reference in New Issue
Block a user