Heim > Backend-Entwicklung > Golang > Wie kann ich mithilfe von Go-Vorlagen mit Switch und ForEach ein Bash-Skript generieren, um Abhängigkeiten zu durchlaufen und entsprechende Echomeldungen basierend auf ihrem Typ auszugeben?

Wie kann ich mithilfe von Go-Vorlagen mit Switch und ForEach ein Bash-Skript generieren, um Abhängigkeiten zu durchlaufen und entsprechende Echomeldungen basierend auf ihrem Typ auszugeben?

Susan Sarandon
Freigeben: 2024-10-29 08:22:02
Original
410 Leute haben es durchsucht

How can I generate a Bash script using Go templates with switch and ForEach to iterate through dependencies and output corresponding echo messages based on their type?

Golang-Vorlage mit Switch & ForEach

Diese Codedemonstration konzentriert sich auf die Verwendung einer Vorlage in Go, um ein Bash-Skript zu erstellen. Das Skript erfordert eine ForEach-Iteration durch Abhängigkeiten, die Identifizierung ihrer Typen und die Ausgabe entsprechender Echomeldungen. Eine Switch-Anweisung wird implementiert, um den Typ jeder Abhängigkeit zu verarbeiten.

package main

import (
    "log"
    "text/template"
    "gopkg.in/yaml.v2"
    "os"
)

type File struct {
    TypeVersion string `yaml:"_type-version"`
    Dependency  []Dependency
}

type Dependency struct {
    Name    string
    Type    string
    CWD     string
    Install []Install
}

type Install map[string]string

var data = `
_type-version: "1.0.0"
dependency:
  - name: ui
    type: runner
    cwd: /ui
    install:
       - name: api

  - name: ui2
    type: runner2
    cwd: /ui2
    install:
       - name: api2

`

func main() {
    f := File{}

    err := yaml.Unmarshal([]byte(data), &f)
    if err != nil {
        log.Fatalf("error: %v", err)
    }

   const t = `
#!/bin/bash

{{range .Dependency}}
echo "type is {{.Type}}"
echo "cwd is {{.CWD}}"
{{range .Install}}
echo "install {{.name}}"
{{end}}
{{end}}
`

    tt := template.Must(template.New("").Parse(t))
    err = tt.Execute(os.Stdout, f)
    if err != nil {
        log.Println("executing template:", err)
    }
}
Nach dem Login kopieren

Die bereitgestellten Daten werden in eine Dateistruktur entmarshallt, die dann für die Vorlagenausführung bereit ist. Dieser modifizierte Code generiert ein Skript mit:

#!/bin/bash

echo "type is runner"
echo "cwd is /ui"
echo "install api"

echo "type is runner2"
echo "cwd is /ui2"
echo "install api2"
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Go-Vorlagen mit Switch und ForEach ein Bash-Skript generieren, um Abhängigkeiten zu durchlaufen und entsprechende Echomeldungen basierend auf ihrem Typ auszugeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage