github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/aagent/plugin/machine.go (about) 1 // Copyright (c) 2021-2022, R.I. Pienaar and the Choria Project contributors 2 // 3 // SPDX-License-Identifier: Apache-2.0 4 5 package plugin 6 7 import ( 8 "fmt" 9 10 "github.com/choria-io/go-choria/build" 11 "github.com/choria-io/go-choria/inter" 12 "golang.org/x/text/cases" 13 "golang.org/x/text/language" 14 ) 15 16 func NewMachinePlugin(name string, machine any) *MachinePlugin { 17 return &MachinePlugin{name: name, machine: machine} 18 } 19 20 type MachinePlugin struct { 21 name string 22 machine any 23 } 24 25 func (p *MachinePlugin) Name() string { 26 return p.name 27 } 28 29 func (p *MachinePlugin) Machine() any { 30 return p.machine 31 } 32 33 func (p *MachinePlugin) PluginInstance() any { 34 return p 35 } 36 37 func (p *MachinePlugin) PluginVersion() string { 38 return build.Version 39 } 40 41 func (p *MachinePlugin) PluginName() string { 42 return fmt.Sprintf("%s Autonomous Agent version %s", cases.Title(language.AmericanEnglish).String(p.name), build.Version) 43 } 44 45 func (p *MachinePlugin) PluginType() inter.PluginType { 46 return inter.MachinePlugin 47 }