github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/events/onSignalReceived/signal.go (about)

     1  package signaltrap
     2  
     3  import (
     4  	"github.com/lmorg/murex/lang"
     5  	"github.com/lmorg/murex/lang/types"
     6  	"github.com/lmorg/murex/utils/json"
     7  )
     8  
     9  const commandName = "signal"
    10  
    11  func init() {
    12  	lang.DefineFunction(commandName, cmdSendSignal, types.Json)
    13  }
    14  
    15  func autocompleteSignals(p *lang.Process) error {
    16  	p.Stdout.SetDataType(types.Json)
    17  
    18  	signals := make(map[string]string, len(interrupts))
    19  	for name := range interrupts {
    20  		signals[name] = interrupts[name].String()
    21  	}
    22  
    23  	b, err := json.Marshal(signals, p.Stdout.IsTTY())
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	_, err = p.Stdout.Write(b)
    29  	return err
    30  }