mirror of
https://github.com/restic/restic.git
synced 2024-12-23 16:26:11 +00:00
7881309d63
This removes code that is only used within a backend implementation from the backend package. The latter now only contains code that also has external users.
29 lines
674 B
Go
29 lines
674 B
Go
package util
|
|
|
|
import "os"
|
|
|
|
type Modes struct {
|
|
Dir os.FileMode
|
|
File os.FileMode
|
|
}
|
|
|
|
// DefaultModes defines the default permissions to apply to new repository
|
|
// files and directories stored on file-based backends.
|
|
var DefaultModes = Modes{Dir: 0700, File: 0600}
|
|
|
|
// DeriveModesFromFileInfo will, given the mode of a regular file, compute
|
|
// the mode we should use for new files and directories. If the passed
|
|
// error is non-nil DefaultModes are returned.
|
|
func DeriveModesFromFileInfo(fi os.FileInfo, err error) Modes {
|
|
m := DefaultModes
|
|
if err != nil {
|
|
return m
|
|
}
|
|
|
|
if fi.Mode()&0040 != 0 { // Group has read access
|
|
m.Dir |= 0070
|
|
m.File |= 0060
|
|
}
|
|
|
|
return m
|
|
}
|