waveterm/pkg/util/wavefileutil/wavefileutil.go

38 lines
963 B
Go
Raw Normal View History

package wavefileutil
import (
"fmt"
"github.com/wavetermdev/waveterm/pkg/filestore"
"github.com/wavetermdev/waveterm/pkg/remote/fileshare/fsutil"
"github.com/wavetermdev/waveterm/pkg/util/fileutil"
"github.com/wavetermdev/waveterm/pkg/wshrpc"
)
const (
WaveFilePathPattern = "wavefile://%s/%s"
)
func WaveFileToFileInfo(wf *filestore.WaveFile) *wshrpc.FileInfo {
path := fmt.Sprintf(WaveFilePathPattern, wf.ZoneId, wf.Name)
rtn := &wshrpc.FileInfo{
Path: path,
Dir: fsutil.GetParentPathString(path),
Name: wf.Name,
Opts: &wf.Opts,
Size: wf.Size,
Meta: &wf.Meta,
SupportsMkdir: false,
}
fileutil.AddMimeTypeToFileInfo(path, rtn)
return rtn
}
func WaveFileListToFileInfoList(wfList []*filestore.WaveFile) []*wshrpc.FileInfo {
var fileInfoList []*wshrpc.FileInfo
for _, wf := range wfList {
fileInfoList = append(fileInfoList, WaveFileToFileInfo(wf))
}
return fileInfoList
}