-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenproviders.sh
executable file
·57 lines (43 loc) · 1.01 KB
/
genproviders.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env bash
set -euo pipefail
(
cat <<EOF
package main
// WARNING: Automatically generated, do not edit manually. Add new providers to providers.txt, keeping it sorted, and run "make build".
import (
EOF
for i in $(cat providers.txt); do
# can generalize on next occurrence of special import name
prefix=''
if test $i = 'openstack-designate'; then
prefix='openstackdesignate '
fi
echo " $prefix\"github.com/libdns/$i\""
done
cat <<EOF
)
// KnownProviders ensures all providers types are included in sherpadoc API documentation.
type KnownProviders struct {
EOF
for i in $(cat providers.txt); do
if test $i = 'openstack-designate'; then
i='openstackdesignate'
fi
echo " X$i $i.Provider"
done
cat <<EOF
}
// providers is used for instantiating a provider by name.
var providers = map[string]any{
EOF
for i in $(cat providers.txt); do
if test $i = 'openstack-designate'; then
i='openstackdesignate'
fi
echo " \"$i\": $i.Provider{},"
done
cat <<EOF
}
EOF
)>providers.go
gofmt -w -s providers.go