MCPcopy Create free account
hub / github.com/MG-RAST/Shock / FilesFromArchive

Function FilesFromArchive

shock-server/node/archive/archive.go:66–86  ·  view source on GitHub ↗
(format string, filePath string)

Source from the content-addressed store, hash-verified

64}
65
66func FilesFromArchive(format string, filePath string) (fileList []file.FormFile, unpackDir string, err error) {
67 // set unpack dir
68 unpackDir = fmt.Sprintf("%s/temp/%d%d", conf.PATH_DATA, rand.Int(), rand.Int())
69 if merr := os.Mkdir(unpackDir, 0777); merr != nil {
70 logger.Error("err:@node_unpack: " + err.Error())
71 }
72
73 // magic to unpack archive
74 if format == "zip" {
75 fileList, err = unZip(filePath, unpackDir)
76 } else if format == "tar" {
77 fileList, err = unTar(filePath, unpackDir, "")
78 } else if format == "tar.gz" {
79 fileList, err = unTar(filePath, unpackDir, "gzip")
80 } else if format == "tar.bz2" {
81 fileList, err = unTar(filePath, unpackDir, "bzip2")
82 } else {
83 return nil, unpackDir, errors.New("invalid archive format. must be one of: " + ArchiveList)
84 }
85 return
86}
87
88func unTar(filePath string, unpackDir string, compression string) (fileList []file.FormFile, err error) {
89 // get file handle

Callers

nothing calls this directly

Calls 4

unZipFunction · 0.85
unTarFunction · 0.85
MkdirMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected