feat: support profile path cmd options

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2022-04-14 23:36:11 +08:00
parent 4d403e2866
commit 8f7e602e9f
12 changed files with 170 additions and 126 deletions
+62
View File
@@ -1,11 +1,16 @@
package fileutil
import (
"archive/zip"
"bytes"
"fmt"
"io/ioutil"
"os"
"path"
"path/filepath"
"hack-browser-data/internal/item"
"hack-browser-data/internal/log"
)
// FileExists checks if the file exists in the provided path
@@ -55,3 +60,60 @@ func CopyItemToLocal(itemPaths map[item.Item]string) error {
}
return nil
}
func ParentDir(p string) string {
return filepath.Dir(p)
}
func BaseDir(p string) string {
return filepath.Base(p)
}
func ParentBaseDir(p string) string {
return BaseDir(ParentDir(p))
}
func CompressDir(dir string) error {
files, err := ioutil.ReadDir(dir)
if err != nil {
log.Error(err)
}
var b = new(bytes.Buffer)
zw := zip.NewWriter(b)
for _, f := range files {
fw, _ := zw.Create(f.Name())
fileName := path.Join(dir, f.Name())
fileContent, err := ioutil.ReadFile(fileName)
if err != nil {
zw.Close()
return err
}
_, err = fw.Write(fileContent)
if err != nil {
zw.Close()
return err
}
err = os.Remove(fileName)
if err != nil {
log.Error(err)
}
}
if err := zw.Close(); err != nil {
return err
}
filename := filepath.Join(dir, "archive.zip")
outFile, err := os.Create(filename)
if err != nil {
return err
}
_, err = b.WriteTo(outFile)
if err != nil {
return err
}
log.Debugf("Compress success, zip filename is %s", filename)
return nil
}
// func CleanProfilePath(p string) string {
//
// }
-44
View File
@@ -1,20 +1,14 @@
package utils
import (
"archive/zip"
"bytes"
"fmt"
"io/ioutil"
"os"
"path"
"strings"
"time"
"hack-browser-data/internal/log"
)
const Prefix = "[x]: "
func IntToBool(a int) bool {
switch a {
case 0, -1:
@@ -73,41 +67,3 @@ func MakeDir(dirName string) error {
}
return nil
}
func Compress(exportDir string) error {
files, err := ioutil.ReadDir(exportDir)
if err != nil {
log.Error(err)
}
var b = new(bytes.Buffer)
zw := zip.NewWriter(b)
for _, f := range files {
fw, _ := zw.Create(f.Name())
fileName := path.Join(exportDir, f.Name())
fileContent, err := ioutil.ReadFile(fileName)
if err != nil {
zw.Close()
return err
}
_, err = fw.Write(fileContent)
if err != nil {
zw.Close()
return err
}
err = os.Remove(fileName)
if err != nil {
log.Error(err)
}
}
if err := zw.Close(); err != nil {
return err
}
zipName := exportDir + `/archive.zip`
outFile, _ := os.Create(zipName)
_, err = b.WriteTo(outFile)
if err != nil {
return err
}
fmt.Printf("%s Compress success, zip filename is %s \n", Prefix, zipName)
return nil
}