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  }