You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
638 B
Go
30 lines
638 B
Go
2 years ago
|
package archiver
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func Run_unzip(src string, dst string, strip bool) error {
|
||
|
return Unarchive(src, dst, strip)
|
||
|
}
|
||
|
|
||
|
func Unarchive(src string, dst string, strip bool) (err error) {
|
||
|
fileTypes := strings.Split(src, ".")
|
||
|
if len(fileTypes) == 0 {
|
||
|
return errors.New("fileType is not supported")
|
||
|
}
|
||
|
//fmt.Println(fileTypes[len(fileTypes)-1])
|
||
|
switch fileTypes[len(fileTypes)-1] {
|
||
|
case "gz":
|
||
|
err = untgz(src, dst, strip)
|
||
|
case "gx":
|
||
|
err = untgx(src, dst, strip)
|
||
|
case "zip":
|
||
|
err = unzip(src, dst, strip)
|
||
|
default:
|
||
|
err = errors.New(fileTypes[len(fileTypes)-1] + " is not supported")
|
||
|
}
|
||
|
return err
|
||
|
}
|