2025-01-22 22:50:09 +00:00
|
|
|
package wavefileutil
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
|
|
"github.com/wavetermdev/waveterm/pkg/filestore"
|
2025-02-15 01:27:02 +00:00
|
|
|
"github.com/wavetermdev/waveterm/pkg/remote/fileshare/fsutil"
|
|
|
|
|
"github.com/wavetermdev/waveterm/pkg/util/fileutil"
|
2025-01-22 22:50:09 +00:00
|
|
|
"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)
|
2025-02-15 01:27:02 +00:00
|
|
|
rtn := &wshrpc.FileInfo{
|
2025-01-22 22:50:09 +00:00
|
|
|
Path: path,
|
2025-02-15 01:27:02 +00:00
|
|
|
Dir: fsutil.GetParentPathString(path),
|
2025-01-22 22:50:09 +00:00
|
|
|
Name: wf.Name,
|
|
|
|
|
Opts: &wf.Opts,
|
|
|
|
|
Size: wf.Size,
|
|
|
|
|
Meta: &wf.Meta,
|
|
|
|
|
SupportsMkdir: false,
|
|
|
|
|
}
|
2025-02-15 01:27:02 +00:00
|
|
|
fileutil.AddMimeTypeToFileInfo(path, rtn)
|
|
|
|
|
return rtn
|
2025-01-22 22:50:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func WaveFileListToFileInfoList(wfList []*filestore.WaveFile) []*wshrpc.FileInfo {
|
|
|
|
|
var fileInfoList []*wshrpc.FileInfo
|
|
|
|
|
for _, wf := range wfList {
|
|
|
|
|
fileInfoList = append(fileInfoList, WaveFileToFileInfo(wf))
|
|
|
|
|
}
|
|
|
|
|
return fileInfoList
|
|
|
|
|
}
|