sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 7be94fd3c825a0aa8f6cef97240bdae7eec3f47d
parent d0c87f6d3e3b0d13d8599d02d4a8a5509ee1eaab
Author: sin <sin@2f30.org>
Date:   Mon, 19 Aug 2013 17:22:46 +0100

Add hostname(1)

Diffstat:
MMakefile | 1+
Ahostname.1 | 12++++++++++++
Ahostname.c | 33+++++++++++++++++++++++++++++++++
3 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile @@ -46,6 +46,7 @@ SRC = \ fold.c \ grep.c \ head.c \ + hostname.c \ id.c \ kill.c \ ln.c \ diff --git a/hostname.1 b/hostname.1 @@ -0,0 +1,12 @@ +.TH HOSTNAME 1 sbase\-VERSION +.SH NAME +hostname \- set or print name of current host system +.SH SYNOPSIS +.B hostname +.I [name] +.SH DESCRIPTION +.B hostname +sets or prints the name of the current host. If no argument is given, +the name of the current host is printed. +.SH SEE ALSO +.IR hostname (7) diff --git a/hostname.c b/hostname.c @@ -0,0 +1,33 @@ +/* See LICENSE file for copyright and license details. */ +#include <unistd.h> +#include <stdio.h> +#include <string.h> +#include "util.h" + +static void +usage(void) +{ + eprintf("usage: %s [name]\n", argv0); +} + +int +main(int argc, char *argv[]) +{ + char buf[BUFSIZ]; + + ARGBEGIN { + default: + usage(); + } ARGEND; + + if (argc < 1) { + if (gethostname(buf, sizeof(buf)) < 0) + eprintf("gethostname:"); + puts(buf); + } else { + if (sethostname(argv[0], strlen(argv[0])) < 0) + eprintf("sethostname:"); + } + + return 0; +}