go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/_motor/providers/os/events/command.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package events
     5  
     6  import (
     7  	"go.mondoo.com/cnquery/motor/providers"
     8  	"go.mondoo.com/cnquery/motor/providers/os"
     9  )
    10  
    11  type CommandObservable struct {
    12  	Result *os.Command
    13  }
    14  
    15  func (co *CommandObservable) Type() providers.ObservableType {
    16  	return providers.CommandType
    17  }
    18  
    19  func (co *CommandObservable) ID() string {
    20  	return co.Result.Command
    21  }
    22  
    23  func NewCommandRunnable(command string) func(p os.OperatingSystemProvider) (providers.Observable, error) {
    24  	return func(p os.OperatingSystemProvider) (providers.Observable, error) {
    25  		cmd, err := p.RunCommand(command)
    26  		res := &CommandObservable{Result: cmd}
    27  		return res, err
    28  	}
    29  }