Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/internal/fs/other.go
1560 views
1
package fs
2
3
import (
4
"context"
5
6
"github.com/alist-org/alist/v3/internal/errs"
7
"github.com/alist-org/alist/v3/internal/model"
8
"github.com/alist-org/alist/v3/internal/op"
9
"github.com/pkg/errors"
10
)
11
12
func makeDir(ctx context.Context, path string, lazyCache ...bool) error {
13
storage, actualPath, err := op.GetStorageAndActualPath(path)
14
if err != nil {
15
return errors.WithMessage(err, "failed get storage")
16
}
17
return op.MakeDir(ctx, storage, actualPath, lazyCache...)
18
}
19
20
func move(ctx context.Context, srcPath, dstDirPath string, lazyCache ...bool) error {
21
srcStorage, srcActualPath, err := op.GetStorageAndActualPath(srcPath)
22
if err != nil {
23
return errors.WithMessage(err, "failed get src storage")
24
}
25
dstStorage, dstDirActualPath, err := op.GetStorageAndActualPath(dstDirPath)
26
if err != nil {
27
return errors.WithMessage(err, "failed get dst storage")
28
}
29
if srcStorage.GetStorage() != dstStorage.GetStorage() {
30
return errors.WithStack(errs.MoveBetweenTwoStorages)
31
}
32
return op.Move(ctx, srcStorage, srcActualPath, dstDirActualPath, lazyCache...)
33
}
34
35
func rename(ctx context.Context, srcPath, dstName string, lazyCache ...bool) error {
36
storage, srcActualPath, err := op.GetStorageAndActualPath(srcPath)
37
if err != nil {
38
return errors.WithMessage(err, "failed get storage")
39
}
40
return op.Rename(ctx, storage, srcActualPath, dstName, lazyCache...)
41
}
42
43
func remove(ctx context.Context, path string) error {
44
storage, actualPath, err := op.GetStorageAndActualPath(path)
45
if err != nil {
46
return errors.WithMessage(err, "failed get storage")
47
}
48
return op.Remove(ctx, storage, actualPath)
49
}
50
51
func other(ctx context.Context, args model.FsOtherArgs) (interface{}, error) {
52
storage, actualPath, err := op.GetStorageAndActualPath(args.Path)
53
if err != nil {
54
return nil, errors.WithMessage(err, "failed get storage")
55
}
56
args.Path = actualPath
57
return op.Other(ctx, storage, args)
58
}
59
60