]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blobdiff - file.go
README: misc updates
[nsscash/nsscash.git] / file.go
diff --git a/file.go b/file.go
index 0857dd50f14dde2fa1d0a7507fbe9e3ac17ad499..e06a9bce335ccc4e4444e5f8ea9502d27df09eba 100644 (file)
--- a/file.go
+++ b/file.go
@@ -89,7 +89,8 @@ func fetchFile(file *File, state *State) error {
                t = zero // force download
        }
 
-       status, body, err := fetchIfModified(file.Url, &t)
+       status, body, err := fetchIfModified(file.Url,
+               file.Username, file.Password, file.CA, &t)
        if err != nil {
                return err
        }
@@ -171,15 +172,16 @@ func deployFile(file *File) error {
        defer os.Remove(f.Name())
        defer f.Close()
 
-       // Apply permissions/user/group from the target file, use Stat instead
-       // of Lstat as only the target's permissions are relevant
+       // Apply permissions/user/group from the target file but remove the
+       // write permissions to discourage manual modifications, use Stat
+       // instead of Lstat as only the target's permissions are relevant
        stat, err := os.Stat(file.Path)
        if err != nil {
                // We do not create the path if it doesn't exist, because we
                // do not know the proper permissions
                return errors.Wrapf(err, "file.path %q must exist", file.Path)
        }
-       err = f.Chmod(stat.Mode())
+       err = f.Chmod(stat.Mode() & ^os.FileMode(0222)) // remove write perms
        if err != nil {
                return err
        }