1
1
package cloudflare
2
2
3
3
import (
4
+ "errors"
4
5
"github.com/hugomd/cloudflare-ddns/lib/providers"
5
6
"log"
6
7
"os"
@@ -19,27 +20,27 @@ var ZONE, HOST string
19
20
func NewProvider () (providers.Provider , error ) {
20
21
APIKEY := os .Getenv ("CLOUDFLARE_APIKEY" )
21
22
if APIKEY == "" {
22
- log .Fatal ("APIKEY env. variable is required" )
23
+ log .Fatal ("CLOUDFLARE_APIKEY env. variable is required" )
23
24
}
24
25
25
26
ZONE = os .Getenv ("CLOUDFLARE_ZONE" )
26
27
if APIKEY == "" {
27
- log .Fatal ("ZONE env. variable is required" )
28
+ log .Fatal ("CLOUDFLARE_ZONE env. variable is required" )
28
29
}
29
30
30
31
HOST = os .Getenv ("CLOUDFLARE_HOST" )
31
32
if HOST == "" {
32
- log .Fatal ("HOST env. variable is required" )
33
+ log .Fatal ("CLOUDFLARE_HOST env. variable is required" )
33
34
}
34
35
35
36
EMAIL := os .Getenv ("CLOUDFLARE_EMAIL" )
36
37
if EMAIL == "" {
37
- log .Fatal ("EMAIL env. variable is required" )
38
+ log .Fatal ("CLOUDFLARE_EMAIL env. variable is required" )
38
39
}
39
40
40
41
api , err := NewCloudflareClient (APIKEY , EMAIL , ZONE , HOST )
41
42
if err != nil {
42
- panic ( err )
43
+ return nil , err
43
44
}
44
45
45
46
provider := & Cloudflare {
@@ -52,7 +53,7 @@ func NewProvider() (providers.Provider, error) {
52
53
func (api * Cloudflare ) UpdateRecord (ip string ) error {
53
54
zones , err := api .client .ListZones ()
54
55
if err != nil {
55
- panic ( err )
56
+ return err
56
57
}
57
58
58
59
var zone Zone
@@ -64,12 +65,12 @@ func (api *Cloudflare) UpdateRecord(ip string) error {
64
65
}
65
66
66
67
if zone == (Zone {}) {
67
- panic ("Zone not found" )
68
+ return errors . New ("Zone not found" )
68
69
}
69
70
70
71
records , err := api .client .ListDNSRecords (zone )
71
72
if err != nil {
72
- panic ( err )
73
+ return err
73
74
}
74
75
75
76
var record Record
@@ -80,14 +81,14 @@ func (api *Cloudflare) UpdateRecord(ip string) error {
80
81
}
81
82
82
83
if record == (Record {}) {
83
- panic ("Host not found" )
84
+ return errors . New ("Host not found" )
84
85
}
85
86
86
87
if ip != record .Content {
87
88
record .Content = ip
88
89
err = api .client .UpdateDNSRecord (record , zone )
89
90
if err != nil {
90
- panic ( err )
91
+ return err
91
92
}
92
93
log .Printf ("IP changed, updated to %s" , ip )
93
94
} else {
0 commit comments