alist/internal/fs/write.go

48 lines
1.5 KiB
Go
Raw Normal View History

2022-06-10 13:00:51 +00:00
package fs
import (
"context"
2022-06-23 07:57:10 +00:00
"github.com/alist-org/alist/v3/internal/errs"
2022-06-10 13:00:51 +00:00
"github.com/alist-org/alist/v3/internal/operations"
"github.com/pkg/errors"
)
func makeDir(ctx context.Context, path string) error {
2022-06-10 13:00:51 +00:00
account, actualPath, err := operations.GetAccountAndActualPath(path)
if err != nil {
return errors.WithMessage(err, "failed get account")
}
return operations.MakeDir(ctx, account, actualPath)
}
func move(ctx context.Context, srcPath, dstDirPath string) error {
2022-06-10 13:00:51 +00:00
srcAccount, srcActualPath, err := operations.GetAccountAndActualPath(srcPath)
if err != nil {
return errors.WithMessage(err, "failed get src account")
}
dstAccount, dstDirActualPath, err := operations.GetAccountAndActualPath(dstDirPath)
2022-06-10 13:00:51 +00:00
if err != nil {
return errors.WithMessage(err, "failed get dst account")
}
if srcAccount.GetAccount() != dstAccount.GetAccount() {
2022-06-23 08:03:27 +00:00
return errors.WithStack(errs.MoveBetweenTwoAccounts)
2022-06-10 13:00:51 +00:00
}
return operations.Move(ctx, srcAccount, srcActualPath, dstDirActualPath)
2022-06-10 13:00:51 +00:00
}
func rename(ctx context.Context, srcPath, dstName string) error {
2022-06-10 13:00:51 +00:00
account, srcActualPath, err := operations.GetAccountAndActualPath(srcPath)
if err != nil {
return errors.WithMessage(err, "failed get account")
}
return operations.Rename(ctx, account, srcActualPath, dstName)
}
func remove(ctx context.Context, path string) error {
2022-06-10 13:00:51 +00:00
account, actualPath, err := operations.GetAccountAndActualPath(path)
if err != nil {
return errors.WithMessage(err, "failed get account")
}
return operations.Remove(ctx, account, actualPath)
}