Browse Source
more verbose permission denied error
be a bit more verbose about why a file could not be created when it is
caused by a permission denied error.
pull/2811/head
Stefan Melmuk
2 years ago
No known key found for this signature in database
GPG Key ID: 817020C608FE9C09
1 changed files with
11 additions and
2 deletions
-
src/util.rs
|
@ -1,7 +1,7 @@ |
|
|
//
|
|
|
//
|
|
|
// Web Headers and caching
|
|
|
// Web Headers and caching
|
|
|
//
|
|
|
//
|
|
|
use std::io::Cursor; |
|
|
use std::io::{Cursor, ErrorKind}; |
|
|
|
|
|
|
|
|
use rocket::{ |
|
|
use rocket::{ |
|
|
fairing::{Fairing, Info, Kind}, |
|
|
fairing::{Fairing, Info, Kind}, |
|
@ -311,7 +311,16 @@ pub fn file_exists(path: &str) -> bool { |
|
|
|
|
|
|
|
|
pub fn write_file(path: &str, content: &[u8]) -> Result<(), crate::error::Error> { |
|
|
pub fn write_file(path: &str, content: &[u8]) -> Result<(), crate::error::Error> { |
|
|
use std::io::Write; |
|
|
use std::io::Write; |
|
|
let mut f = File::create(path)?; |
|
|
let mut f = match File::create(path) { |
|
|
|
|
|
Ok(file) => file, |
|
|
|
|
|
Err(e) => { |
|
|
|
|
|
if e.kind() == ErrorKind::PermissionDenied { |
|
|
|
|
|
error!("Can't create '{}': Permission denied", path); |
|
|
|
|
|
} |
|
|
|
|
|
return Err(From::from(e)); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
f.write_all(content)?; |
|
|
f.write_all(content)?; |
|
|
f.flush()?; |
|
|
f.flush()?; |
|
|
Ok(()) |
|
|
Ok(()) |
|
|