version 1.13, 2007/03/23 06:16:24 |
version 1.14, 2007/03/23 15:46:40 |
|
|
char *version = "4.2"; |
char *version = "4.2"; |
|
|
struct passwd *pw; |
struct passwd *pw; |
char os[BUFSIZ], rel[BUFSIZ], mach[BUFSIZ]; |
char os[BUFSIZ], rel[BUFSIZ], mach[BUFSIZ], details[BUFSIZ]; |
char *fullname; |
char *fullname; |
char *tmppath; |
char *tmppath; |
int wantcleanup; |
int wantcleanup; |
|
|
size_t len = 0, namelen; |
size_t len = 0, namelen; |
int sysname[2]; |
int sysname[2]; |
const char *src; |
const char *src; |
char *dst; |
char *dst, *cp; |
|
|
if ((pw = getpwuid(getuid())) == NULL) { |
if ((pw = getpwuid(getuid())) == NULL) { |
err(1, "getpwuid"); |
err(1, "getpwuid"); |
|
|
err(1, "sysctl"); |
err(1, "sysctl"); |
} |
} |
|
|
|
sysname[0] = CTL_KERN; |
|
sysname[1] = KERN_VERSION; |
|
len = sizeof(details) - 1; |
|
if (sysctl(sysname, 2, &details, &len, NULL, 0) == -1) { |
|
err(1, "sysctl"); |
|
} |
|
|
|
cp = strchr(details, '\n'); |
|
if (cp) { |
|
cp++; |
|
if (*cp) |
|
*cp++ = '\t'; |
|
if (*cp) |
|
*cp++ = '\t'; |
|
if (*cp) |
|
*cp++ = '\t'; |
|
} |
|
|
sysname[0] = CTL_HW; |
sysname[0] = CTL_HW; |
sysname[1] = HW_MACHINE; |
sysname[1] = HW_MACHINE; |
len = sizeof(mach) - 1; |
len = sizeof(mach) - 1; |
|
|
blank = 1; |
blank = 1; |
/* Skip comments, but only if we encountered a blank line. */ |
/* Skip comments, but only if we encountered a blank line. */ |
while (len) { |
while (len) { |
char *sp, *ep = NULL; |
char *sp = NULL, *ep = NULL; |
size_t copylen; |
size_t copylen; |
|
|
if (blank && (sp = memchr(buf, '<', len)) != NULL) |
if (blank && (sp = memchr(buf, '<', len)) != NULL) |
|
|
fprintf(fp, ">Environment:\n"); |
fprintf(fp, ">Environment:\n"); |
fprintf(fp, "\t<machine, os, target, libraries (multiple lines)>\n"); |
fprintf(fp, "\t<machine, os, target, libraries (multiple lines)>\n"); |
fprintf(fp, "\tSystem : %s %s\n", os, rel); |
fprintf(fp, "\tSystem : %s %s\n", os, rel); |
|
fprintf(fp, "\tDetails : %s\n", details); |
fprintf(fp, "\tArchitecture: %s.%s\n", os, mach); |
fprintf(fp, "\tArchitecture: %s.%s\n", os, mach); |
fprintf(fp, "\tMachine : %s\n", mach); |
fprintf(fp, "\tMachine : %s\n", mach); |
fprintf(fp, ">Description:\n"); |
fprintf(fp, ">Description:\n"); |