1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-30 12:37:49 +00:00

Build hashsum, join, ln, ls, mkdir, mktemp, nl, ptx, sort on Redox

This commit is contained in:
Ian Douglas Scott 2018-03-14 15:56:16 -07:00
parent bc9a0aae66
commit 6f4b91db93
No known key found for this signature in database
GPG key ID: 4924E10E199B5959
3 changed files with 18 additions and 20 deletions

View file

@ -65,19 +65,10 @@ fuchsia = [
]
generic = [
"arch",
"hashsum",
"hostname",
"join",
"more",
"ln",
"ls",
"mkdir",
"mktemp",
"nl",
"nproc",
"ptx",
"shred",
"sort",
"sync",
"tail",
"test",
@ -111,13 +102,21 @@ redox_generic = [
"false",
"fmt",
"fold",
"hashsum",
"head",
"join",
"link",
"ln",
"ls",
"mkdir",
"mktemp",
"mv",
"nl",
"od",
"paste",
"printenv",
"printf",
"ptx",
"pwd",
"readlink",
"realpath",
@ -127,6 +126,7 @@ redox_generic = [
"seq",
"shuf",
"sleep",
"sort",
"split",
"sum",
"tac",

View file

@ -14,7 +14,7 @@ extern crate uucore;
use std::fs;
use std::io::{stdin, BufRead, BufReader, Result};
#[cfg(unix)]
#[cfg(any(unix, target_os = "redox"))]
use std::os::unix::fs::symlink;
#[cfg(windows)]
use std::os::windows::fs::{symlink_dir, symlink_file};

View file

@ -135,20 +135,18 @@ fn mkdir(path: &Path, mode: u16, verbose: bool) -> i32 {
show_info!("created directory '{}'", path.display());
}
#[cfg(unix)]
#[cfg(any(unix, target_os = "redox"))]
fn chmod(path: &Path, mode: u16) -> i32 {
use std::ffi::CString;
use std::io::Error;
use fs::{Permissions, set_permissions};
use std::os::unix::fs::{PermissionsExt};
let directory =
CString::new(path.as_os_str().to_str().unwrap()).unwrap_or_else(|e| crash!(1, "{}", e));
let mode = mode as libc::mode_t;
let mode = Permissions::from_mode(mode as u32);
if unsafe { libc::chmod(directory.as_ptr(), mode) } != 0 {
show_info!(
"{}: errno {}",
if let Err(err) = set_permissions(path, mode) {
show_error!(
"{}: {}",
path.display(),
Error::last_os_error().raw_os_error().unwrap()
err
);
return 1;
}