aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/nsheridan/autocert-wkfs-cache/cache.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nsheridan/autocert-wkfs-cache/cache.go')
-rw-r--r--vendor/github.com/nsheridan/autocert-wkfs-cache/cache.go85
1 files changed, 0 insertions, 85 deletions
diff --git a/vendor/github.com/nsheridan/autocert-wkfs-cache/cache.go b/vendor/github.com/nsheridan/autocert-wkfs-cache/cache.go
deleted file mode 100644
index 3b3fd47..0000000
--- a/vendor/github.com/nsheridan/autocert-wkfs-cache/cache.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package wkfscache
-
-import (
- "context"
- "os"
- "path/filepath"
-
- "go4.org/wkfs"
-
- "golang.org/x/crypto/acme/autocert"
-)
-
-type Cache string
-
-// Get reads a certificate data from the specified file name.
-func (d Cache) Get(ctx context.Context, name string) ([]byte, error) {
- name = filepath.Join(string(d), name)
- var (
- data []byte
- err error
- done = make(chan struct{})
- )
- go func() {
- data, err = wkfs.ReadFile(name)
- close(done)
- }()
- select {
- case <-ctx.Done():
- return nil, ctx.Err()
- case <-done:
- }
- if os.IsNotExist(err) {
- return nil, autocert.ErrCacheMiss
- }
- return data, err
-}
-
-// Put writes the certificate data to the specified file name.
-// The file will be created with 0600 permissions.
-func (d Cache) Put(ctx context.Context, name string, data []byte) error {
- if err := wkfs.MkdirAll(string(d), 0700); err != nil {
- return err
- }
-
- done := make(chan struct{})
- var err error
- go func() {
- defer close(done)
- if err := wkfs.WriteFile(filepath.Join(string(d), name), data, 0600); err != nil {
- return
- }
- // prevent overwriting the file if the context was cancelled
- if ctx.Err() != nil {
- return // no need to set err
- }
- }()
- select {
- case <-ctx.Done():
- return ctx.Err()
- case <-done:
- }
- return err
-}
-
-// Delete removes the specified file name.
-func (d Cache) Delete(ctx context.Context, name string) error {
- name = filepath.Join(string(d), name)
- var (
- err error
- done = make(chan struct{})
- )
- go func() {
- err = wkfs.Remove(name)
- close(done)
- }()
- select {
- case <-ctx.Done():
- return ctx.Err()
- case <-done:
- }
- if err != nil && !os.IsNotExist(err) {
- return err
- }
- return nil
-}