aboutsummaryrefslogtreecommitdiff
path: root/toys
diff options
context:
space:
mode:
authorIsaac Dunham <ibid.ag@gmail.com>2014-05-25 11:46:58 -0500
committerIsaac Dunham <ibid.ag@gmail.com>2014-05-25 11:46:58 -0500
commit80a438dd35782db8d3e0bca81ca78dea128f9c37 (patch)
tree7f3e32e05a02d0103292b976f5b6dc2f00174d10 /toys
parent67ba22986d84b8d793d9bb39d6d7545204924124 (diff)
downloadtoybox-80a438dd35782db8d3e0bca81ca78dea128f9c37.tar.gz
logname and whoami are the same as id -un, so merge them.
Since the starting letters are greater than those for 'id' or 'groups', we cn just check if the first letter is greater than 'i'.
Diffstat (limited to 'toys')
-rw-r--r--toys/other/whoami.c29
-rw-r--r--toys/posix/id.c12
-rw-r--r--toys/posix/logname.c25
3 files changed, 12 insertions, 54 deletions
diff --git a/toys/other/whoami.c b/toys/other/whoami.c
deleted file mode 100644
index a7ed047a..00000000
--- a/toys/other/whoami.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* whoami.c - Print effective user name
- *
- * Copyright 2012 Georgi Chorbadzhiyski <georgi@unixsol.org>
-
-USE_WHOAMI(NEWTOY(whoami, NULL, TOYFLAG_USR|TOYFLAG_BIN))
-
-config WHOAMI
- bool "whoami"
- default y
- help
- usage: whoami
-
- Print effective user name.
-*/
-
-#include "toys.h"
-
-void whoami_main(void)
-{
- struct passwd *pw = getpwuid(geteuid());
-
- if (!pw) {
- perror("getpwuid");
- toys.exitval = 1;
- return;
- }
-
- xputs(pw->pw_name);
-}
diff --git a/toys/posix/id.c b/toys/posix/id.c
index 8b68d4de..a03a0975 100644
--- a/toys/posix/id.c
+++ b/toys/posix/id.c
@@ -8,6 +8,8 @@
USE_ID(NEWTOY(id, ">1nGgru[!Ggu]", TOYFLAG_BIN))
USE_ID_GROUPS(OLDTOY(groups, id, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+USE_ID_LOGNAME(OLDTOY(logname, id, ">0", TOYFLAG_BIN))
+USE_ID_LOGNAME(OLDTOY(whoami, id, ">0", TOYFLAG_BIN))
config ID
bool "id"
@@ -32,6 +34,15 @@ config ID_GROUPS
Print the groups a user is in.
+config ID_LOGNAME
+ bool "logname"
+ default y
+ depends on ID
+ help
+ usage: logname
+
+ Print the current user name.
+
*/
#define FOR_id
@@ -116,6 +127,7 @@ void do_id(char *username)
void id_main(void)
{
+ if (toys.which->name[0] > 'i') toys.optflags = (FLAG_u | FLAG_n);
if (toys.optc) while(*toys.optargs) do_id(*toys.optargs++);
else do_id(NULL);
}
diff --git a/toys/posix/logname.c b/toys/posix/logname.c
deleted file mode 100644
index b638ea2f..00000000
--- a/toys/posix/logname.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* logname.c - Print user's login name.
- *
- * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
- *
- * See http://opengroup.org/onlinepubs/9699919799/utilities/logname.html
-
-USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_BIN))
-
-config LOGNAME
- bool "logname"
- default y
- help
- usage: logname
-
- Prints the calling user's name or an error when this cannot be
- determined.
-*/
-
-#include "toys.h"
-
-void logname_main(void)
-{
- if (getlogin_r(toybuf, sizeof(toybuf))) error_exit("no login name");
- xputs(toybuf);
-}