go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/services/bsdinit.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package services 5 6 import ( 7 "bufio" 8 "io" 9 "strings" 10 11 "go.mondoo.com/cnquery/providers/os/connection/shared" 12 ) 13 14 func ParseBsdInit(input io.Reader) ([]*Service, error) { 15 var services []*Service 16 scanner := bufio.NewScanner(input) 17 for scanner.Scan() { 18 line := scanner.Text() 19 services = append(services, &Service{ 20 Name: strings.TrimSpace(line), 21 Enabled: true, 22 Installed: true, 23 Running: true, 24 Type: "bsd", 25 }) 26 } 27 return services, nil 28 } 29 30 type BsdInitServiceManager struct { 31 conn shared.Connection 32 } 33 34 func (s *BsdInitServiceManager) Name() string { 35 return "Bsd Init Service Manager" 36 } 37 38 func (s *BsdInitServiceManager) List() ([]*Service, error) { 39 c, err := s.conn.RunCommand("service -e") 40 if err != nil { 41 return nil, err 42 } 43 return ParseBsdInit(c.Stdout) 44 }