| /* |
| * Copyright (C) 2007 Karel Zak <kzak@redhat.com> |
| * |
| * This file is part of util-linux-ng. |
| * |
| * This file is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This file is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include <unistd.h> |
| |
| #include "pathnames.h" |
| |
| struct hlpPath |
| { |
| const char *name; |
| const char *path; |
| }; |
| |
| #define DEF_HLPPATH(_p) { #_p, _p } |
| |
| struct hlpPath paths[] = |
| { |
| DEF_HLPPATH(_PATH_DEFPATH), |
| DEF_HLPPATH(_PATH_DEFPATH_ROOT), |
| DEF_HLPPATH(_PATH_DEV_TTY), |
| DEF_HLPPATH(_PATH_DEV_LOOP), |
| DEF_HLPPATH(_PATH_SECURETTY), |
| DEF_HLPPATH(_PATH_WTMPLOCK), |
| DEF_HLPPATH(_PATH_HUSHLOGIN), |
| DEF_HLPPATH(_PATH_MAILDIR), |
| DEF_HLPPATH(_PATH_MOTDFILE), |
| DEF_HLPPATH(_PATH_NOLOGIN), |
| DEF_HLPPATH(_PATH_LOGIN), |
| DEF_HLPPATH(_PATH_INITTAB), |
| DEF_HLPPATH(_PATH_RC), |
| DEF_HLPPATH(_PATH_REBOOT), |
| DEF_HLPPATH(_PATH_SINGLE), |
| DEF_HLPPATH(_PATH_SHUTDOWN_CONF), |
| DEF_HLPPATH(_PATH_SECURE), |
| DEF_HLPPATH(_PATH_USERTTY), |
| DEF_HLPPATH(_PATH_UMOUNT), |
| DEF_HLPPATH(_PATH_PASSWD), |
| DEF_HLPPATH(_PATH_GSHADOW), |
| DEF_HLPPATH(_PATH_PTMP), |
| DEF_HLPPATH(_PATH_PTMPTMP), |
| DEF_HLPPATH(_PATH_GROUP), |
| DEF_HLPPATH(_PATH_GTMP), |
| DEF_HLPPATH(_PATH_GTMPTMP), |
| DEF_HLPPATH(_PATH_SHADOW_PASSWD), |
| DEF_HLPPATH(_PATH_SHADOW_PTMP), |
| DEF_HLPPATH(_PATH_SHADOW_PTMPTMP), |
| DEF_HLPPATH(_PATH_SHADOW_GROUP), |
| DEF_HLPPATH(_PATH_SHADOW_GTMP), |
| DEF_HLPPATH(_PATH_SHADOW_GTMPTMP), |
| DEF_HLPPATH(_PATH_WORDS), |
| DEF_HLPPATH(_PATH_WORDS_ALT), |
| DEF_HLPPATH(_PATH_UMOUNT), |
| DEF_HLPPATH(_PATH_FILESYSTEMS), |
| DEF_HLPPATH(_PATH_PROC_SWAPS), |
| DEF_HLPPATH(_PATH_PROC_FILESYSTEMS), |
| DEF_HLPPATH(_PATH_MOUNTED), |
| DEF_HLPPATH(_PATH_MNTTAB), |
| DEF_HLPPATH(_PATH_MOUNTED_LOCK), |
| DEF_HLPPATH(_PATH_MOUNTED_TMP), |
| DEF_HLPPATH(_PATH_DEV_BYLABEL), |
| DEF_HLPPATH(_PATH_DEV_BYUUID), |
| { NULL, NULL } |
| }; |
| |
| int |
| main(int argc, char **argv) |
| { |
| struct hlpPath *p; |
| |
| if (argc == 1) { |
| for (p = paths; p->name; p++) |
| printf("%20s %s\n", p->name, p->path); |
| exit(EXIT_SUCCESS); |
| } else { |
| if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-h") == 0) { |
| printf("%s <option>\n", argv[0]); |
| fputs("options:\n", stdout); |
| for (p = paths; p->name; p++) |
| printf("\t%s\n", p->name); |
| exit(EXIT_SUCCESS); |
| } |
| |
| for (p = paths; p->name; p++) { |
| if (strcmp(p->name, argv[1]) == 0) { |
| printf("%s\n", p->path); |
| exit(EXIT_SUCCESS); |
| } |
| } |
| } |
| |
| exit(EXIT_FAILURE); |
| } |
| |