Files
kopia/cli/command_policy_set_error_handling.go
Jarek Kowalski ac9f85967a Added first-class support for fs.ErrorEntry for directory entries that could not be read or are unknown/unsupported (#852)
* policy: added errorHandling.ignoreUnknownTypes flag (defaults to true)

* cli: get/set ignore-unknown-types policy flag

* htmlui: added UI for setting ignore-unknown-types

* htmlui: fixed typo

* fs: return fs.ErrorEntry when a directory entry is not recognized (localfs and repofs)

* upload: explicitly handle unknown entry types by treating them as ignored errors
2021-03-01 06:16:26 -08:00

33 lines
1.4 KiB
Go

package cli
import (
"context"
"github.com/pkg/errors"
"github.com/kopia/kopia/snapshot/policy"
)
var (
// Error handling behavior.
policyIgnoreFileErrors = policySetCommand.Flag("ignore-file-errors", "Ignore errors reading files while traversing ('true', 'false', 'inherit')").Enum(booleanEnumValues...)
policyIgnoreDirectoryErrors = policySetCommand.Flag("ignore-dir-errors", "Ignore errors reading directories while traversing ('true', 'false', 'inherit").Enum(booleanEnumValues...)
policyIgnoreUnknownTypes = policySetCommand.Flag("ignore-unknown-types", "Ignore unknown entry types in directories ('true', 'false', 'inherit").Enum(booleanEnumValues...)
)
func setErrorHandlingPolicyFromFlags(ctx context.Context, fp *policy.ErrorHandlingPolicy, changeCount *int) error {
if err := applyPolicyBoolPtr(ctx, "ignore file errors", &fp.IgnoreFileErrors, *policyIgnoreFileErrors, changeCount); err != nil {
return errors.Wrap(err, "ignore file errors")
}
if err := applyPolicyBoolPtr(ctx, "ignore directory errors", &fp.IgnoreDirectoryErrors, *policyIgnoreDirectoryErrors, changeCount); err != nil {
return errors.Wrap(err, "ignore directory errors")
}
if err := applyPolicyBoolPtr(ctx, "ignore unknown types", &fp.IgnoreUnknownTypes, *policyIgnoreUnknownTypes, changeCount); err != nil {
return errors.Wrap(err, "ignore unknown types")
}
return nil
}