/* setfattr.c - Write POSIX extended attributes. * * Copyright 2016 Android Open Source Project. * * No standard USE_SETFATTR(NEWTOY(setfattr, "hn:|v:x:|[!xv]", TOYFLAG_USR|TOYFLAG_BIN)) config SETFATTR bool "setfattr" default y help usage: setfattr [-h] [-x|-n NAME] [-v VALUE] FILE... Write POSIX extended attributes. -h Do not dereference symlink -n Set given attribute -x Remove given attribute -v Set value for attribute -n (default is empty) */ #define FOR_setfattr #include "toys.h" GLOBALS( char *x, *v, *n; ) void setfattr_main(void) { int h = toys.optflags & FLAG_h, rc; char **s; for (s=toys.optargs; *s; s++) { if (TT.x) rc = (h?lremovexattr:removexattr)(*s, TT.x); else rc = (h?lsetxattr:setxattr)(*s, TT.n, TT.v, TT.v?strlen(TT.v):0, 0); if (rc) perror_msg("%s", *s); } }