From 2333136ee7003fd24b1d7a4d0246501c9e16596b Mon Sep 17 00:00:00 2001
From: Fontrodona Nicolas <nicolas.fontrodona@ens-lyon.fr>
Date: Thu, 12 May 2022 15:43:36 +0200
Subject: [PATCH] src/create_hooks.rs: update create hooks option

---
 src/create_hooks.rs | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/create_hooks.rs b/src/create_hooks.rs
index 916e6d5..1cbede1 100644
--- a/src/create_hooks.rs
+++ b/src/create_hooks.rs
@@ -1,6 +1,7 @@
 use std::fs::File;
+use std::fs::OpenOptions;
 use std::io::Write;
-use std::os::unix::prelude::PermissionsExt;
+use std::os::unix::prelude::OpenOptionsExt;
 use std::{
     path::PathBuf,
     process::{exit, Command},
@@ -58,7 +59,13 @@ fn create_file(folder: &PathBuf, file_name: &str, content: &str) {
         );
         return ();
     }
-    let mut file = File::create(&hfile).unwrap_or_else(|e| {
+    let mut file = OpenOptions::new()
+        .create_new(true)
+        .write(true)
+        .mode(0o755)
+        .open(&hfile)
+        .unwrap();
+    File::create(&hfile).unwrap_or_else(|e| {
         eprintln!(
             "Unable to create the file {}.\n{}",
             hfile.to_str().unwrap(),
@@ -74,8 +81,6 @@ fn create_file(folder: &PathBuf, file_name: &str, content: &str) {
         );
         exit(7);
     });
-    let mut permissions = file.metadata().unwrap().permissions();
-    permissions.set_mode(0o755);
 }
 
 /// Create 3 files in `.git/hooks` folder
-- 
GitLab