Ignore hidden file when creating archive file (#1450)

This commit is contained in:
Ta-Ching Chen
2019-12-01 09:58:16 +08:00
committed by GitHub
parent 506b427124
commit 6301a78814
5 changed files with 94 additions and 14 deletions
+2 -2
View File
@@ -85,7 +85,7 @@ func CreateArchive(client *client.Client, includeFiles []string, noZip bool, ins
}
path := filepath.Join(rootDir, path)
files, err := utils.FindAllGlobs([]string{path})
files, err := utils.FindAllGlobs(path)
if err != nil {
errs = multierror.Append(errs, errors.Wrap(err, "error finding all globs"))
continue
@@ -198,7 +198,7 @@ func makeArchiveFile(archiveNameHint string, archiveInput []string, noZip bool)
archiveName := archiveName(archiveNameHint, archiveInput)
// Get files from inputs as number of files decide next steps
files, err := utils.FindAllGlobs(archiveInput)
files, err := utils.FindAllGlobs(archiveInput...)
if err != nil {
return "", errors.Wrap(err, "error finding all globs")
}
+4 -4
View File
@@ -427,13 +427,13 @@ func localArchiveFromSpec(specDir string, aus *spectypes.ArchiveUploadSpec) (*fv
files = append(files, aus.IncludeGlobs[0])
} else {
for _, relativeGlob := range aus.IncludeGlobs {
absGlob := rootDir + "/" + relativeGlob
f, err := filepath.Glob(absGlob)
absGlob := filepath.Join(rootDir, relativeGlob)
console.Verbose(2, "try to find globs in path '%v'", absGlob)
fs, err := utils.FindAllGlobs(absGlob)
if err != nil {
return nil, errors.Wrapf(err, "Invalid glob in archive %v: %v", aus.Name, relativeGlob)
}
files = append(files, f...)
// xxx handle excludeGlobs here
files = append(files, fs...)
}
}
+22 -8
View File
@@ -21,7 +21,6 @@ import (
"crypto/sha256"
"encoding/hex"
"fmt"
"golang.org/x/net/context/ctxhttp"
"io"
"io/ioutil"
"net"
@@ -33,10 +32,12 @@ import (
"github.com/mholt/archiver"
"github.com/pkg/errors"
uuid "github.com/satori/go.uuid"
"golang.org/x/net/context/ctxhttp"
apiv1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
"github.com/fission/fission/pkg/fission-cli/console"
)
func UrlForFunction(name, namespace string) string {
@@ -102,21 +103,34 @@ func GetTempDir() (string, error) {
return dir, err
}
// FindAllGlobs returns a list of globs of input list.
func FindAllGlobs(inputList []string) ([]string, error) {
// FindAllGlobs ignores all hidden files and returns a list of globs of input list.
func FindAllGlobs(paths ...string) ([]string, error) {
files := make([]string, 0)
for _, glob := range inputList {
f, err := filepath.Glob(glob)
for _, p := range paths {
// use absolute path to find files
path, err := filepath.Abs(p)
if err != nil {
return nil, errors.Errorf("invalid glob %v: %v", glob, err)
return nil, errors.Wrapf(err, "error getting absolute path of path '%v'", p)
}
globs, err := filepath.Glob(path)
if err != nil {
return nil, errors.Errorf("invalid glob %v: %v", path, err)
}
for _, f := range globs {
// ignore hidden file.
if strings.HasPrefix(filepath.Base(f), ".") {
console.Verbose(2, "Ignore hidden file '%v'", f)
continue
}
files = append(files, f)
// xxx handle excludeGlobs here
}
files = append(files, f...)
}
return files, nil
}
func MakeZipArchive(targetName string, globs ...string) (string, error) {
files, err := FindAllGlobs(globs)
files, err := FindAllGlobs(globs...)
if err != nil {
return "", err
}