aboutsummaryrefslogtreecommitdiff
path: root/bin/hostname
diff options
context:
space:
mode:
authorMarcelo Araujo <araujo@FreeBSD.org>2016-11-08 11:36:33 +0000
committerMarcelo Araujo <araujo@FreeBSD.org>2016-11-08 11:36:33 +0000
commit31500ce90d3091027a6a9a2e61f6130db6269a1c (patch)
treea54fe0cbc9235ab19db0b0b0b86a0bf907e0185a /bin/hostname
parent9a639daf77146468d5e5d3d4c2a687ff2ca49730 (diff)
downloadsrc-31500ce90d3091027a6a9a2e61f6130db6269a1c.tar.gz
src-31500ce90d3091027a6a9a2e61f6130db6269a1c.zip
Add -d flag that prints domain only.
PR: 212875 Submitted by: Ben RUBSON <ben.rubson@gmail.com> Reviewed by: pi
Notes
Notes: svn path=/head/; revision=308443
Diffstat (limited to 'bin/hostname')
-rw-r--r--bin/hostname/hostname.17
-rw-r--r--bin/hostname/hostname.c16
2 files changed, 17 insertions, 6 deletions
diff --git a/bin/hostname/hostname.1 b/bin/hostname/hostname.1
index bfff27baa6c6..73255d280041 100644
--- a/bin/hostname/hostname.1
+++ b/bin/hostname/hostname.1
@@ -29,7 +29,7 @@
.\" @(#)hostname.1 8.2 (Berkeley) 4/28/95
.\" $FreeBSD$
.\"
-.Dd December 7, 2006
+.Dd November 9, 2016
.Dt HOSTNAME 1
.Os
.Sh NAME
@@ -37,7 +37,8 @@
.Nd set or print name of current host system
.Sh SYNOPSIS
.Nm
-.Op Fl fs
+.Op Fl f
+.Op Fl s|d
.Op Ar name-of-host
.Sh DESCRIPTION
The
@@ -62,6 +63,8 @@ This is the default behavior.
.It Fl s
Trim off any domain information from the printed
name.
+.It Fl d
+Only print domain information.
.El
.Sh SEE ALSO
.Xr gethostname 3 ,
diff --git a/bin/hostname/hostname.c b/bin/hostname/hostname.c
index ecc319db6b17..3b07b8b5f537 100644
--- a/bin/hostname/hostname.c
+++ b/bin/hostname/hostname.c
@@ -54,11 +54,12 @@ static void usage(void) __dead2;
int
main(int argc, char *argv[])
{
- int ch, sflag;
+ int ch, sflag, dflag;
char *p, hostname[MAXHOSTNAMELEN];
sflag = 0;
- while ((ch = getopt(argc, argv, "fs")) != -1)
+ dflag = 0;
+ while ((ch = getopt(argc, argv, "fsd")) != -1)
switch (ch) {
case 'f':
/*
@@ -70,6 +71,9 @@ main(int argc, char *argv[])
case 's':
sflag = 1;
break;
+ case 'd':
+ dflag = 1;
+ break;
case '?':
default:
usage();
@@ -77,7 +81,7 @@ main(int argc, char *argv[])
argc -= optind;
argv += optind;
- if (argc > 1)
+ if (argc > 1 || (sflag && dflag))
usage();
if (*argv) {
@@ -90,6 +94,10 @@ main(int argc, char *argv[])
p = strchr(hostname, '.');
if (p != NULL)
*p = '\0';
+ } else if (dflag) {
+ p = strchr(hostname, '.');
+ if (p != NULL)
+ strcpy(hostname, ++p);
}
(void)printf("%s\n", hostname);
}
@@ -100,6 +108,6 @@ static void
usage(void)
{
- (void)fprintf(stderr, "usage: hostname [-fs] [name-of-host]\n");
+ (void)fprintf(stderr, "usage: hostname [-f] [s|d] [name-of-host]\n");
exit(1);
}