forked from TrueCloudLab/restic
Create setNewFileMode function.
Create separate files with setNewFileMode to avoid runtime checks.
This commit is contained in:
parent
dfe232cf46
commit
520b1b65b0
3 changed files with 25 additions and 11 deletions
|
@ -7,7 +7,6 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
|
||||||
"sort"
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
@ -147,16 +146,7 @@ func (lb *localBlob) Finalize(t backend.Type, name string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// set file to readonly, except on Windows,
|
return setNewFileMode(f, fi)
|
||||||
// otherwise deletion will fail.
|
|
||||||
if runtime.GOOS != "windows" {
|
|
||||||
err = os.Chmod(f, fi.Mode()&os.FileMode(^uint32(0222)))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create creates a new Blob. The data is available only after Finalize()
|
// Create creates a new Blob. The data is available only after Finalize()
|
||||||
|
|
12
backend/local/local_unix.go
Normal file
12
backend/local/local_unix.go
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
|
package local
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// set file to readonly
|
||||||
|
func setNewFileMode(f string, fi os.FileInfo) error {
|
||||||
|
return os.Chmod(f, fi.Mode()&os.FileMode(^uint32(0222)))
|
||||||
|
}
|
12
backend/local/local_windows.go
Normal file
12
backend/local/local_windows.go
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
package local
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// We don't modify read-only on windows,
|
||||||
|
// since it will make us unable to delete the file,
|
||||||
|
// and this isn't common practice on this platform.
|
||||||
|
func setNewFileMode(f string, fi os.FileInfo) error {
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in a new issue