Author: araujo
Date: Tue Nov  8 11:36:33 2016
New Revision: 308443
URL: https://svnweb.freebsd.org/changeset/base/308443

Log:
  Add -d flag that prints domain only.
  
  PR:           212875
  Submitted by: Ben RUBSON <[email protected]>
  Reviewed by:  pi

Modified:
  head/bin/hostname/hostname.1
  head/bin/hostname/hostname.c

Modified: head/bin/hostname/hostname.1
==============================================================================
--- head/bin/hostname/hostname.1        Tue Nov  8 10:10:55 2016        
(r308442)
+++ head/bin/hostname/hostname.1        Tue Nov  8 11:36:33 2016        
(r308443)
@@ -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 ,

Modified: head/bin/hostname/hostname.c
==============================================================================
--- head/bin/hostname/hostname.c        Tue Nov  8 10:10:55 2016        
(r308442)
+++ head/bin/hostname/hostname.c        Tue Nov  8 11:36:33 2016        
(r308443)
@@ -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);
 }
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to