diff --git a/action.yaml b/action.yaml index 1595ef6..5f85ed6 100644 --- a/action.yaml +++ b/action.yaml @@ -1,5 +1,12 @@ name: "Simple Go Action" description: "A simple Gitea action written in go" +inputs: + username: + description: "The username to print" + required: true +outputs: + time: + description: "The time when the action was called" runs: using: "go" main: "main.go" diff --git a/main.go b/main.go index ddea548..5d1e78f 100644 --- a/main.go +++ b/main.go @@ -1,13 +1,40 @@ package main import ( - "log/slog" + "fmt" "os" + "time" ) func main() { - slog.Info("Printing Environment") - for _, key_val := range os.Environ() { - slog.Info(key_val) + username := readInputs() + fmt.Printf("username is %s\n", username) + + err := writeOutputs("time", time.Now().Format("2006-01-02 15:04:05")) + if err != nil { + panic(err) } } + +func readInputs() string { + username := os.Getenv("INPUT_USERNAME") + return username +} + +func writeOutputs(k, v string) (err error) { + msg := fmt.Sprintf("%s=%s", k, v) + outputFilepath := os.Getenv("GITHUB_OUTPUT") + f, err := os.OpenFile(outputFilepath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return + } + defer func() { + if cErr := f.Close(); cErr != nil && err == nil { + err = cErr + } + }() + if _, err = f.Write([]byte(msg)); err != nil { + return + } + return +}