From ce0d08ff186ddf4f53ed3d8185b84f5fb36e91d4 Mon Sep 17 00:00:00 2001
From: Daniel <dhaavi@users.noreply.github.com>
Date: Tue, 11 Oct 2022 12:22:05 +0200
Subject: [PATCH] Fix fs error handling

---
 cmd/cmd-close.go   | 3 ++-
 cmd/cmd-open.go    | 3 ++-
 filesig/helpers.go | 3 ++-
 truststores/dir.go | 3 ++-
 truststores/io.go  | 5 +++--
 5 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/cmd/cmd-close.go b/cmd/cmd-close.go
index e35a20a..0157253 100644
--- a/cmd/cmd-close.go
+++ b/cmd/cmd-close.go
@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"io"
+	"io/fs"
 	"os"
 	"strings"
 
@@ -81,7 +82,7 @@ var (
 					if !confirmed {
 						return nil
 					}
-				} else if !os.IsNotExist(err) {
+				} else if !errors.Is(err, fs.ErrNotExist) {
 					return fmt.Errorf("failed to access output file: %w", err)
 				}
 			}
diff --git a/cmd/cmd-open.go b/cmd/cmd-open.go
index 4fdadc0..650173e 100644
--- a/cmd/cmd-open.go
+++ b/cmd/cmd-open.go
@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"io"
+	"io/fs"
 	"os"
 	"strings"
 
@@ -70,7 +71,7 @@ var (
 					if !confirmed {
 						return nil
 					}
-				} else if !os.IsNotExist(err) {
+				} else if !errors.Is(err, fs.ErrNotExist) {
 					return fmt.Errorf("failed to access output file: %w", err)
 				}
 			}
diff --git a/filesig/helpers.go b/filesig/helpers.go
index 90e7918..0c05e59 100644
--- a/filesig/helpers.go
+++ b/filesig/helpers.go
@@ -3,6 +3,7 @@ package filesig
 import (
 	"errors"
 	"fmt"
+	"io/fs"
 	"os"
 	"strings"
 
@@ -59,7 +60,7 @@ func SignFile(dataFilePath, signatureFilePath string, metaData map[string]string
 		if err != nil {
 			return nil, fmt.Errorf("failed to add signature to file: %w", err)
 		}
-	case os.IsNotExist(err):
+	case errors.Is(err, fs.ErrNotExist):
 		// Make signature section for saving to disk.
 		newSigFileData, err = MakeSigFileSection(signature)
 		if err != nil {
diff --git a/truststores/dir.go b/truststores/dir.go
index 25484f0..8ae1612 100644
--- a/truststores/dir.go
+++ b/truststores/dir.go
@@ -3,6 +3,7 @@ package truststores
 import (
 	"errors"
 	"fmt"
+	"io/fs"
 	"os"
 	"path/filepath"
 	"strings"
@@ -246,7 +247,7 @@ func NewDirTrustStore(storageDir string) (*DirTrustStore, error) {
 	// validate path
 	info, err := os.Stat(cleanedPath)
 	if err != nil {
-		if os.IsNotExist(err) {
+		if errors.Is(err, fs.ErrNotExist) {
 			return nil, fmt.Errorf("trust store does not exist: %w", err)
 		}
 		return nil, fmt.Errorf("failed to access trust store: %w", err)
diff --git a/truststores/io.go b/truststores/io.go
index 8ccff5e..cb34844 100644
--- a/truststores/io.go
+++ b/truststores/io.go
@@ -2,6 +2,7 @@ package truststores
 
 import (
 	"errors"
+	"io/fs"
 	"os"
 
 	"github.com/safing/jess"
@@ -38,7 +39,7 @@ func WriteSignetToFile(signet *jess.Signet, filename string) error {
 func LoadSignetFromFile(filename string) (*jess.Signet, error) {
 	data, err := os.ReadFile(filename)
 	if err != nil {
-		if os.IsNotExist(err) {
+		if errors.Is(err, fs.ErrNotExist) {
 			return nil, jess.ErrSignetNotFound
 		}
 		return nil, err
@@ -83,7 +84,7 @@ func WriteEnvelopeToFile(envelope *jess.Envelope, filename string) error {
 func LoadEnvelopeFromFile(filename string) (*jess.Envelope, error) {
 	data, err := os.ReadFile(filename)
 	if err != nil {
-		if os.IsNotExist(err) {
+		if errors.Is(err, fs.ErrNotExist) {
 			return nil, jess.ErrEnvelopeNotFound
 		}
 		return nil, err