Split NewBinDataAsset into NewBinAsset and MustBinAsset
parent
614afc82f2
commit
14209a487c
|
|
@ -32,18 +32,18 @@ To add a new addon to minikube the following steps are required:
|
||||||
var Addons = map[string]*Addon{
|
var Addons = map[string]*Addon{
|
||||||
...,
|
...,
|
||||||
// add other addon asset
|
// add other addon asset
|
||||||
"efk": NewAddon([]*BinDataAsset{
|
"efk": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/efk-configmap.yaml",
|
"deploy/addons/efk/efk-configmap.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"efk-configmap.yaml",
|
"efk-configmap.yaml",
|
||||||
"0640"),
|
"0640"),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/efk-rc.yaml",
|
"deploy/addons/efk/efk-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"efk-rc.yaml",
|
"efk-rc.yaml",
|
||||||
"0640"),
|
"0640"),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/efk-svc.yaml",
|
"deploy/addons/efk/efk-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"efk-svc.yaml",
|
"efk-svc.yaml",
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ func copyConfigFiles() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func copyAssetToDest(targetName, dest string) error {
|
func copyAssetToDest(targetName, dest string) error {
|
||||||
var asset *assets.BinDataAsset
|
var asset *assets.BinAsset
|
||||||
for _, a := range assets.Addons["gvisor"].Assets {
|
for _, a := range assets.Addons["gvisor"].Assets {
|
||||||
if a.GetTargetName() == targetName {
|
if a.GetTargetName() == targetName {
|
||||||
asset = a
|
asset = a
|
||||||
|
|
|
||||||
|
|
@ -31,13 +31,13 @@ import (
|
||||||
|
|
||||||
// Addon is a named list of assets, that can be enabled
|
// Addon is a named list of assets, that can be enabled
|
||||||
type Addon struct {
|
type Addon struct {
|
||||||
Assets []*BinDataAsset
|
Assets []*BinAsset
|
||||||
enabled bool
|
enabled bool
|
||||||
addonName string
|
addonName string
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAddon creates a new Addon
|
// NewAddon creates a new Addon
|
||||||
func NewAddon(assets []*BinDataAsset, enabled bool, addonName string) *Addon {
|
func NewAddon(assets []*BinAsset, enabled bool, addonName string) *Addon {
|
||||||
a := &Addon{
|
a := &Addon{
|
||||||
Assets: assets,
|
Assets: assets,
|
||||||
enabled: enabled,
|
enabled: enabled,
|
||||||
|
|
@ -61,260 +61,260 @@ func (a *Addon) IsEnabled() (bool, error) {
|
||||||
|
|
||||||
// Addons is the list of addons
|
// Addons is the list of addons
|
||||||
var Addons = map[string]*Addon{
|
var Addons = map[string]*Addon{
|
||||||
"addon-manager": NewAddon([]*BinDataAsset{
|
"addon-manager": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/addon-manager.yaml",
|
"deploy/addons/addon-manager.yaml",
|
||||||
"/etc/kubernetes/manifests/",
|
"/etc/kubernetes/manifests/",
|
||||||
"addon-manager.yaml",
|
"addon-manager.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
}, true, "addon-manager"),
|
}, true, "addon-manager"),
|
||||||
"dashboard": NewAddon([]*BinDataAsset{
|
"dashboard": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/dashboard/dashboard-dp.yaml",
|
"deploy/addons/dashboard/dashboard-dp.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"dashboard-dp.yaml",
|
"dashboard-dp.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/dashboard/dashboard-svc.yaml",
|
"deploy/addons/dashboard/dashboard-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"dashboard-svc.yaml",
|
"dashboard-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "dashboard"),
|
}, false, "dashboard"),
|
||||||
"default-storageclass": NewAddon([]*BinDataAsset{
|
"default-storageclass": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/storageclass/storageclass.yaml",
|
"deploy/addons/storageclass/storageclass.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"storageclass.yaml",
|
"storageclass.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, true, "default-storageclass"),
|
}, true, "default-storageclass"),
|
||||||
"storage-provisioner": NewAddon([]*BinDataAsset{
|
"storage-provisioner": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/storage-provisioner/storage-provisioner.yaml",
|
"deploy/addons/storage-provisioner/storage-provisioner.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"storage-provisioner.yaml",
|
"storage-provisioner.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
}, true, "storage-provisioner"),
|
}, true, "storage-provisioner"),
|
||||||
"storage-provisioner-gluster": NewAddon([]*BinDataAsset{
|
"storage-provisioner-gluster": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/storage-provisioner-gluster/storage-gluster-ns.yaml",
|
"deploy/addons/storage-provisioner-gluster/storage-gluster-ns.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"storage-gluster-ns.yaml",
|
"storage-gluster-ns.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/storage-provisioner-gluster/glusterfs-daemonset.yaml",
|
"deploy/addons/storage-provisioner-gluster/glusterfs-daemonset.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"glusterfs-daemonset.yaml",
|
"glusterfs-daemonset.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/storage-provisioner-gluster/heketi-deployment.yaml",
|
"deploy/addons/storage-provisioner-gluster/heketi-deployment.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"heketi-deployment.yaml",
|
"heketi-deployment.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/storage-provisioner-gluster/storage-provisioner-glusterfile.yaml",
|
"deploy/addons/storage-provisioner-gluster/storage-provisioner-glusterfile.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"storage-privisioner-glusterfile.yaml",
|
"storage-privisioner-glusterfile.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "storage-provisioner-gluster"),
|
}, false, "storage-provisioner-gluster"),
|
||||||
"heapster": NewAddon([]*BinDataAsset{
|
"heapster": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/heapster/influx-grafana-rc.yaml",
|
"deploy/addons/heapster/influx-grafana-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"influxGrafana-rc.yaml",
|
"influxGrafana-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/heapster/grafana-svc.yaml",
|
"deploy/addons/heapster/grafana-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"grafana-svc.yaml",
|
"grafana-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/heapster/influxdb-svc.yaml",
|
"deploy/addons/heapster/influxdb-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"influxdb-svc.yaml",
|
"influxdb-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/heapster/heapster-rc.yaml",
|
"deploy/addons/heapster/heapster-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"heapster-rc.yaml",
|
"heapster-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/heapster/heapster-svc.yaml",
|
"deploy/addons/heapster/heapster-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"heapster-svc.yaml",
|
"heapster-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "heapster"),
|
}, false, "heapster"),
|
||||||
"efk": NewAddon([]*BinDataAsset{
|
"efk": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/elasticsearch-rc.yaml",
|
"deploy/addons/efk/elasticsearch-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"elasticsearch-rc.yaml",
|
"elasticsearch-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/elasticsearch-svc.yaml",
|
"deploy/addons/efk/elasticsearch-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"elasticsearch-svc.yaml",
|
"elasticsearch-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/fluentd-es-rc.yaml",
|
"deploy/addons/efk/fluentd-es-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"fluentd-es-rc.yaml",
|
"fluentd-es-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/fluentd-es-configmap.yaml",
|
"deploy/addons/efk/fluentd-es-configmap.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"fluentd-es-configmap.yaml",
|
"fluentd-es-configmap.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/kibana-rc.yaml",
|
"deploy/addons/efk/kibana-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"kibana-rc.yaml",
|
"kibana-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/efk/kibana-svc.yaml",
|
"deploy/addons/efk/kibana-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"kibana-svc.yaml",
|
"kibana-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "efk"),
|
}, false, "efk"),
|
||||||
"ingress": NewAddon([]*BinDataAsset{
|
"ingress": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/ingress/ingress-configmap.yaml",
|
"deploy/addons/ingress/ingress-configmap.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"ingress-configmap.yaml",
|
"ingress-configmap.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/ingress/ingress-rbac.yaml",
|
"deploy/addons/ingress/ingress-rbac.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"ingress-rbac.yaml",
|
"ingress-rbac.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/ingress/ingress-dp.yaml",
|
"deploy/addons/ingress/ingress-dp.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"ingress-dp.yaml",
|
"ingress-dp.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/ingress/ingress-svc.yaml",
|
"deploy/addons/ingress/ingress-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"ingress-svc.yaml",
|
"ingress-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "ingress"),
|
}, false, "ingress"),
|
||||||
"metrics-server": NewAddon([]*BinDataAsset{
|
"metrics-server": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/metrics-server/metrics-apiservice.yaml",
|
"deploy/addons/metrics-server/metrics-apiservice.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"metrics-apiservice.yaml",
|
"metrics-apiservice.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/metrics-server/metrics-server-deployment.yaml",
|
"deploy/addons/metrics-server/metrics-server-deployment.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"metrics-server-deployment.yaml",
|
"metrics-server-deployment.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/metrics-server/metrics-server-service.yaml",
|
"deploy/addons/metrics-server/metrics-server-service.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"metrics-server-service.yaml",
|
"metrics-server-service.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "metrics-server"),
|
}, false, "metrics-server"),
|
||||||
"registry": NewAddon([]*BinDataAsset{
|
"registry": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/registry/registry-rc.yaml",
|
"deploy/addons/registry/registry-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"registry-rc.yaml",
|
"registry-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/registry/registry-svc.yaml",
|
"deploy/addons/registry/registry-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"registry-svc.yaml",
|
"registry-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "registry"),
|
}, false, "registry"),
|
||||||
"registry-creds": NewAddon([]*BinDataAsset{
|
"registry-creds": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/registry-creds/registry-creds-rc.yaml",
|
"deploy/addons/registry-creds/registry-creds-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"registry-creds-rc.yaml",
|
"registry-creds-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "registry-creds"),
|
}, false, "registry-creds"),
|
||||||
"freshpod": NewAddon([]*BinDataAsset{
|
"freshpod": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/freshpod/freshpod-rc.yaml",
|
"deploy/addons/freshpod/freshpod-rc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"freshpod-rc.yaml",
|
"freshpod-rc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
}, false, "freshpod"),
|
}, false, "freshpod"),
|
||||||
"nvidia-driver-installer": NewAddon([]*BinDataAsset{
|
"nvidia-driver-installer": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/gpu/nvidia-driver-installer.yaml",
|
"deploy/addons/gpu/nvidia-driver-installer.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"nvidia-driver-installer.yaml",
|
"nvidia-driver-installer.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
}, false, "nvidia-driver-installer"),
|
}, false, "nvidia-driver-installer"),
|
||||||
"nvidia-gpu-device-plugin": NewAddon([]*BinDataAsset{
|
"nvidia-gpu-device-plugin": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/gpu/nvidia-gpu-device-plugin.yaml",
|
"deploy/addons/gpu/nvidia-gpu-device-plugin.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"nvidia-gpu-device-plugin.yaml",
|
"nvidia-gpu-device-plugin.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
}, false, "nvidia-gpu-device-plugin"),
|
}, false, "nvidia-gpu-device-plugin"),
|
||||||
"logviewer": NewAddon([]*BinDataAsset{
|
"logviewer": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/logviewer/logviewer-dp-and-svc.yaml",
|
"deploy/addons/logviewer/logviewer-dp-and-svc.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"logviewer-dp-and-svc.yaml",
|
"logviewer-dp-and-svc.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/logviewer/logviewer-rbac.yaml",
|
"deploy/addons/logviewer/logviewer-rbac.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"logviewer-rbac.yaml",
|
"logviewer-rbac.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
false),
|
false),
|
||||||
}, false, "logviewer"),
|
}, false, "logviewer"),
|
||||||
"gvisor": NewAddon([]*BinDataAsset{
|
"gvisor": NewAddon([]*BinAsset{
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/gvisor/gvisor-pod.yaml",
|
"deploy/addons/gvisor/gvisor-pod.yaml",
|
||||||
constants.AddonsPath,
|
constants.AddonsPath,
|
||||||
"gvisor-pod.yaml",
|
"gvisor-pod.yaml",
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/gvisor/gvisor-config.toml",
|
"deploy/addons/gvisor/gvisor-config.toml",
|
||||||
constants.GvisorFilesPath,
|
constants.GvisorFilesPath,
|
||||||
constants.GvisorConfigTomlTargetName,
|
constants.GvisorConfigTomlTargetName,
|
||||||
"0640",
|
"0640",
|
||||||
true),
|
true),
|
||||||
NewBinDataAsset(
|
MustBinAsset(
|
||||||
"deploy/addons/gvisor/gvisor-containerd-shim.toml",
|
"deploy/addons/gvisor/gvisor-containerd-shim.toml",
|
||||||
constants.GvisorFilesPath,
|
constants.GvisorFilesPath,
|
||||||
constants.GvisorContainerdShimTargetName,
|
constants.GvisorContainerdShimTargetName,
|
||||||
|
|
|
||||||
|
|
@ -149,25 +149,34 @@ func NewMemoryAsset(d []byte, targetDir, targetName, permissions string) *Memory
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
// BinDataAsset is a bindata (binary data) asset
|
// BinAsset is a bindata (binary data) asset
|
||||||
type BinDataAsset struct {
|
type BinAsset struct {
|
||||||
BaseAsset
|
BaseAsset
|
||||||
template *template.Template
|
template *template.Template
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewBinDataAsset creates a new BinDataAsset
|
// MustBinAsset creates a new BinAsset, or panics if invalid
|
||||||
func NewBinDataAsset(assetName, targetDir, targetName, permissions string, isTemplate bool) *BinDataAsset {
|
func MustBinAsset(name, targetDir, targetName, permissions string, isTemplate bool) *BinAsset {
|
||||||
m := &BinDataAsset{
|
asset, err := NewBinAsset(name, targetDir, targetName, permissions, isTemplate)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("Failed to define asset %s: %v", name, err))
|
||||||
|
}
|
||||||
|
return asset
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewBinAsset creates a new BinAsset
|
||||||
|
func NewBinAsset(name, targetDir, targetName, permissions string, isTemplate bool) (*BinAsset, error) {
|
||||||
|
m := &BinAsset{
|
||||||
BaseAsset: BaseAsset{
|
BaseAsset: BaseAsset{
|
||||||
AssetName: assetName,
|
AssetName: name,
|
||||||
TargetDir: targetDir,
|
TargetDir: targetDir,
|
||||||
TargetName: targetName,
|
TargetName: targetName,
|
||||||
Permissions: permissions,
|
Permissions: permissions,
|
||||||
},
|
},
|
||||||
template: nil,
|
template: nil,
|
||||||
}
|
}
|
||||||
m.loadData(isTemplate)
|
err := m.loadData(isTemplate)
|
||||||
return m
|
return m, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultValue(defValue string, val interface{}) string {
|
func defaultValue(defValue string, val interface{}) string {
|
||||||
|
|
@ -181,7 +190,7 @@ func defaultValue(defValue string, val interface{}) string {
|
||||||
return strVal
|
return strVal
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *BinDataAsset) loadData(isTemplate bool) error {
|
func (m *BinAsset) loadData(isTemplate bool) error {
|
||||||
contents, err := Asset(m.AssetName)
|
contents, err := Asset(m.AssetName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -207,12 +216,12 @@ func (m *BinDataAsset) loadData(isTemplate bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsTemplate returns if the asset is a template
|
// IsTemplate returns if the asset is a template
|
||||||
func (m *BinDataAsset) IsTemplate() bool {
|
func (m *BinAsset) IsTemplate() bool {
|
||||||
return m.template != nil
|
return m.template != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Evaluate evaluates the template to a new asset
|
// Evaluate evaluates the template to a new asset
|
||||||
func (m *BinDataAsset) Evaluate(data interface{}) (*MemoryAsset, error) {
|
func (m *BinAsset) Evaluate(data interface{}) (*MemoryAsset, error) {
|
||||||
if !m.IsTemplate() {
|
if !m.IsTemplate() {
|
||||||
return nil, errors.Errorf("the asset %s is not a template", m.AssetName)
|
return nil, errors.Errorf("the asset %s is not a template", m.AssetName)
|
||||||
|
|
||||||
|
|
@ -227,12 +236,12 @@ func (m *BinDataAsset) Evaluate(data interface{}) (*MemoryAsset, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLength returns length
|
// GetLength returns length
|
||||||
func (m *BinDataAsset) GetLength() int {
|
func (m *BinAsset) GetLength() int {
|
||||||
return m.Length
|
return m.Length
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read reads the asset
|
// Read reads the asset
|
||||||
func (m *BinDataAsset) Read(p []byte) (int, error) {
|
func (m *BinAsset) Read(p []byte) (int, error) {
|
||||||
if m.Length == 0 {
|
if m.Length == 0 {
|
||||||
return 0, fmt.Errorf("attempted read from a 0 length asset")
|
return 0, fmt.Errorf("attempted read from a 0 length asset")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue