From f4609e28368d3e7a90cbfe602566469bd5fe53a4 Mon Sep 17 00:00:00 2001 From: sin Date: Thu, 30 Jan 2014 16:23:55 +0000 Subject: [PATCH] Remove stat(1) from sbase as it is not portable This utility uses major()/minor() and they are not portable. It belongs in ubase. --- Makefile | 1 - stat.1 | 17 ------------- stat.c | 72 -------------------------------------------------------- 3 files changed, 90 deletions(-) delete mode 100644 stat.1 delete mode 100644 stat.c diff --git a/Makefile b/Makefile index 204e05c..8a6790e 100644 --- a/Makefile +++ b/Makefile @@ -92,7 +92,6 @@ SRC = \ sha1sum.c \ sha256sum.c\ sha512sum.c\ - stat.c \ wc.c \ who.c \ xargs.c \ diff --git a/stat.1 b/stat.1 deleted file mode 100644 index 7391edf..0000000 --- a/stat.1 +++ /dev/null @@ -1,17 +0,0 @@ -.TH STAT 1 sbase\-VERSION -.SH NAME -stat \- display file status -.SH SYNOPSIS -.B stat -.RB [ \-L ] -.RI [ file ...] -.SH DESCRIPTION -.B stat -displays information about the given files or stdin if no files -are specified. -.SH OPTIONS -.TP -.B \-L -follow links -.SH SEE ALSO -.IR stat (2) diff --git a/stat.c b/stat.c deleted file mode 100644 index 37d8676..0000000 --- a/stat.c +++ /dev/null @@ -1,72 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include "util.h" - -static void show_stat(const char *file, struct stat *st); - -static void -usage(void) -{ - eprintf("usage: %s [-L] [file...]\n", argv0); -} - -int -main(int argc, char *argv[]) -{ - struct stat st; - int i, ret = EXIT_SUCCESS; - int Lflag = 0; - int (*fn)(const char *, struct stat *); - - ARGBEGIN { - case 'L': - Lflag = 1; - break; - default: - usage(); - } ARGEND; - - if (argc == 0) { - if (fstat(STDIN_FILENO, &st) < 0) - eprintf("stat :"); - show_stat("", &st); - } - - for (i = 0; i < argc; i++) { - fn = Lflag ? stat : lstat; - if (fn(argv[i], &st) == -1) { - weprintf("%s %s:", Lflag ? "stat" : "lstat", argv[i]); - ret = EXIT_FAILURE; - continue; - } - show_stat(argv[i], &st); - } - - return ret; -} - -static void -show_stat(const char *file, struct stat *st) -{ - char buf[100]; - - printf(" File: ā€˜%sā€™\n", file); - printf(" Size: %lu\tBlocks: %lu\tIO Block: %lu\n", (unsigned long)st->st_size, - (unsigned long)st->st_blocks, (unsigned long)st->st_blksize); - printf("Device: %xh/%ud\tInode: %lu\tLinks %lu\n", major(st->st_dev), - minor(st->st_dev), (unsigned long)st->st_ino, (unsigned long)st->st_nlink); - printf("Access: %04o\tUid: %u\tGid: %u\n", st->st_mode & 0777, st->st_uid, st->st_gid); - strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&st->st_atime)); - printf("Access: %s\n", buf); - strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&st->st_mtime)); - printf("Modify: %s\n", buf); - strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&st->st_ctime)); - printf("Change: %s\n", buf); -}