view toys/realpath.c @ 551:2548e6e590b2

Add string to mode_t parser added new function string_to_mode(char *m_string, mode_t base) which parses a given string and converts it to a mode_t. If either + or - are part of m_string the permissions are either added or removed from base. Currently support for permision copy is missing (e.g. g=u), but all other flags should work. Format for m_string: either symbolic modes or octal representation. symbolic modes: [auog][[+-=][rwxst]*] examples: string_to_mode("u=rwx,g=rw,o=r", 0); string_to_mode("a-x", 0777); string_to_mode("0744", 0);
author Daniel Walter <d.walter@0x90.at>
date Mon, 19 Mar 2012 19:57:56 -0500
parents 7d4dbde67dfb
children
line wrap: on
line source

/* vi: set sw=4 ts=4:
 *
 * realpath.c - Return the canonical version of a pathname
 *
 * Copyright 2012 Andre Renaud <andre@bluewatersys.com>
 *
 * Not in SUSv4.

USE_REALPATH(NEWTOY(realpath, "<1", TOYFLAG_USR|TOYFLAG_BIN))

config REALPATH
	bool "realpath"
	default y
	help
	  usage: realpath FILE...

	  Display the canonical absolute pathname
*/

#include "toys.h"

void realpath_main(void)
{
    char **s = toys.optargs;
    for (s = toys.optargs; *s; s++) {
        if (!realpath(*s, toybuf)) {
            perror_msg("cannot access '%s'", *s);
            toys.exitval = 1;
        } else xputs(toybuf);
    }
}