Add XDG user dirs configuration
This commit is contained in:
+50
@@ -232,6 +232,56 @@ pub fn install_dir<P: AsRef<Path>, S: AsRef<str>>(config: Config, output_dir: P,
|
||||
recursive_chown: true,
|
||||
}.create(&output_dir)?;
|
||||
|
||||
if uid >= 1000 {
|
||||
// Create XDG user dirs
|
||||
//TODO: move to some autostart program?
|
||||
for xdg_folder in &[
|
||||
"Desktop",
|
||||
"Documents",
|
||||
"Downloads",
|
||||
"Music",
|
||||
"Pictures",
|
||||
"Public",
|
||||
"Templates",
|
||||
"Videos",
|
||||
".config",
|
||||
".local",
|
||||
".local/share",
|
||||
".local/share/Trash",
|
||||
".local/share/Trash/info",
|
||||
] {
|
||||
FileConfig {
|
||||
path: format!("{}/{}", home, xdg_folder),
|
||||
data: String::new(),
|
||||
symlink: false,
|
||||
directory: true,
|
||||
mode: Some(0o0700),
|
||||
uid: Some(uid),
|
||||
gid: Some(gid),
|
||||
recursive_chown: false,
|
||||
}.create(&output_dir)?;
|
||||
}
|
||||
FileConfig {
|
||||
path: format!("{}/.config/user-dirs.dirs", home),
|
||||
data: r#"# Produced by redox installer
|
||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||
XDG_MUSIC_DIR="$HOME/Music"
|
||||
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||
XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||
XDG_VIDEOS_DIR="$HOME/Videos"
|
||||
"#.to_string(),
|
||||
symlink: false,
|
||||
directory: false,
|
||||
mode: Some(0o0600),
|
||||
uid: Some(uid),
|
||||
gid: Some(gid),
|
||||
recursive_chown: false,
|
||||
}.create(&output_dir)?;
|
||||
}
|
||||
|
||||
let password = hash_password(&password)?;
|
||||
|
||||
passwd.push_str(&format!("{};{};{};{};{};{}\n", username, uid, gid, name, home, shell));
|
||||
|
||||
Reference in New Issue
Block a user