packer-cn/provisioner/powershell/execution_policy.go

39 lines
884 B
Go
Raw Normal View History

package powershell
import (
"fmt"
"reflect"
)
// ExecutionPolicy setting to run the command(s).
// For the powershell provider the default has historically been to bypass.
type ExecutionPolicy int
const (
Bypass ExecutionPolicy = 0
AllSigned ExecutionPolicy = 1
Default ExecutionPolicy = 2
RemoteSigned ExecutionPolicy = 3
Restricted ExecutionPolicy = 4
Undefined ExecutionPolicy = 5
Unrestricted ExecutionPolicy = 6
)
func (ep *ExecutionPolicy) Decode(v interface{}) (err error) {
str, ok := v.(string)
if !ok {
return fmt.Errorf("%#v is not a string", v)
}
*ep, err = ExecutionPolicyString(str)
return err
}
func StringToExecutionPolicyHook(f reflect.Kind, t reflect.Kind, data interface{}) (interface{}, error) {
if f != reflect.String || t != reflect.Int {
return data, nil
}
raw := data.(string)
return ExecutionPolicyString(raw)
}