Maison > développement back-end > Golang > Comment puis-je générer un script Bash à l'aide de modèles Go avec switch et ForEach pour parcourir les dépendances et générer les messages d'écho correspondants en fonction de leur type ?

Comment puis-je générer un script Bash à l'aide de modèles Go avec switch et ForEach pour parcourir les dépendances et générer les messages d'écho correspondants en fonction de leur type ?

Susan Sarandon
Libérer: 2024-10-29 08:22:02
original
464 Les gens l'ont consulté

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?

Modèle Golang avec Switch & ForEach

Cette démonstration de code se concentre sur l'utilisation d'un modèle dans Go pour produire un script bash. Le script nécessite une itération ForEach à travers les dépendances, en identifiant leurs types et en générant les messages d'écho correspondants. Une instruction switch est implémentée pour gérer le type de chaque dépendance.

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)
    }
}
Copier après la connexion

Les données fournies sont désorganisées dans une structure de fichier, qui est ensuite prête pour l'exécution du modèle. Ce code modifié génère un script avec :

#!/bin/bash

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

echo "type is runner2"
echo "cwd is /ui2"
echo "install api2"
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal