mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
55 lines
1.2 KiB
Bash
Executable File
55 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright 2019 The Kubernetes Authors.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# HashiCorp go-getter
|
|
#
|
|
# Reads a file like this
|
|
#
|
|
# apiVersion: someteam.example.com/v1
|
|
# kind: GoGetter
|
|
# metadata:
|
|
# name: example
|
|
# url: github.com/kustless/kustomize-examples.git
|
|
# # subPath: base # (optional) relative path in the package
|
|
# # command: cat *.yaml # (optional) build command, default `kustomize build $subPath`
|
|
#
|
|
# download kustomize layes and build it to stdout
|
|
#
|
|
# Example execution:
|
|
# ./plugin/someteam.example.com/v1/gogetter/GoGetter configFile.yaml
|
|
#
|
|
# TODO: cache downloads
|
|
|
|
set -e
|
|
|
|
# YAML parsing function borrowed from ChartInflator
|
|
function parseYaml {
|
|
local file=$1
|
|
while read -r line
|
|
do
|
|
local k=${line%%:*}
|
|
local v=${line#*:}
|
|
local t=${v#"${v%%[![:space:]]*}"} # trim leading space
|
|
|
|
if [ "$k" == "url" ]; then url=$t
|
|
elif [ "$k" == "subPath" ]; then subPath=$t
|
|
elif [ "$k" == "command" ]; then command=$t
|
|
fi
|
|
done <"$file"
|
|
}
|
|
|
|
TMP_DIR=$(mktemp -d)
|
|
|
|
parseYaml $1
|
|
|
|
if [ -z "$command" ]; then
|
|
command="kustomize build"
|
|
fi
|
|
|
|
go-getter $url $TMP_DIR/got 2> /dev/null
|
|
|
|
(cd $TMP_DIR/got/$subPath; $command)
|
|
|
|
/bin/rm -rf $TMP_DIR
|