first version
This commit is contained in:
46
scriptsRunner.go
Normal file
46
scriptsRunner.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type ScriptRunner struct {
|
||||
Name string `yaml:"name"`
|
||||
Extension string `yaml:"extension"`
|
||||
Runner string `yaml:"runner"`
|
||||
}
|
||||
|
||||
func GetScriptsRunners() []ScriptRunner {
|
||||
runners := []ScriptRunner{}
|
||||
|
||||
if folderExists("./runners") {
|
||||
entries, err := os.ReadDir("./runners/")
|
||||
if err == nil {
|
||||
for _, e := range entries {
|
||||
if !e.IsDir() && strings.HasSuffix(e.Name(), ".yml") {
|
||||
runner, err := os.ReadFile("./runners/" + e.Name())
|
||||
if err == nil {
|
||||
var rnr ScriptRunner
|
||||
if err := yaml.Unmarshal(runner, &rnr); err == nil {
|
||||
runners = append(runners, rnr)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defaultRunners := []ScriptRunner{
|
||||
{Name: "Windows Executable", Extension: ".exe", Runner: "%v"},
|
||||
{Name: "PowerShell Script", Extension: ".ps1", Runner: "powershell -NoProfile -ExecutionPolicy Bypass -File %v"},
|
||||
{Name: "Python", Extension: ".py", Runner: "python %v"},
|
||||
{Name: "CMD Batch File", Extension: ".bat", Runner: "%v"},
|
||||
{Name: "NodeJS", Extension: ".js", Runner: "node %v"},
|
||||
}
|
||||
runners = append(runners, defaultRunners...)
|
||||
|
||||
return runners
|
||||
}
|
||||
Reference in New Issue
Block a user