這是一個高級問題,因為我不確定如何解決這個問題:我正在構建一個 CLI,自動為用戶設置代碼項目。我想創建一個update功能,允許用戶更新到最新的 CLI 模板版本,但仍然保留他們用于創建項目的原始變量(即項目名稱、環境變量等...)我知道如何創建新模板,但我不知道如何更新并仍然保留用戶傳遞的變量。它類似于 git merge,因此將用戶的本地項目與更新的 CLI 模板合并。var deploymentYamlData在下面的代碼中,您可以看到如何使用字符串變量對文件進行模板化的示例我有一個函數可以將所有這些文件模板組織到項目的正確目錄結構中。我將如何將目錄模板與用戶的本地目錄合并,同時能夠保留原始模板變量?如果我需要澄清更多,請提前道歉。package mainimport ( "text/template" "os")var deploymentYamlData = `--- # do not edit commented lines # CLI-Version: {{ .GitTagVersion}} app: {{ .BotName }} type: web team: {{ .TeamName }} docker_image: {{ .DockerImageName }} docker_tag: {{ .TagVersion }} internal: false replicas: {{ .Replicas }} revisionHistoryLimit: 5 container_port: {{ .DockerImagePort }} healthcheck: path: /{{ .DockerImageHealthCheck }} dynamodb: enable_deleteitem: true tables: - name: {{ .BotName }}_conversation_data`type DigitalAssistant struct { BotName string TeamName string DockerImageName string TagVersion string Replicas int DockerImagePort int DockerImageHealthCheck string GitTageVersion string}func main() { bot := DigitalAssistant{"bobisyouruncle", "teamAwesome", "awesomebotimagename", "0.1.0", 1, 8000, "health"} bmap, err := template.New("captain.tmpl").Parse(deploymentYamlData) if err != nil { panic(err) } err = bmap.Execute(os.Stdout, bot) if err != nil { panic(err) }}
- 0 回答
- 0 關注
- 164 瀏覽
添加回答
舉報
0/150
提交
取消