Initial revision
[mspang/quota.git] / show.c
1 /*
2  * $Id$
3  * show.c - implements the show command.
4  */
5
6 #include <gdbm.h>
7 #include <stdio.h>
8 #include <string.h>
9
10 #include "csc.quota.h"
11
12 void show(int argc, char **argv) {
13     GDBM_FILE dbf;
14     datum key, value;
15
16     if (argc != 1) {
17         fputs("Usage: show user\n", stderr);
18         return;
19     }
20
21     key.dptr = strdup(argv[0]);
22     key.dsize = strlen(argv[0]) + 1;
23
24     dbf = gdbm_open("/u/csc_disk/records/new/quotas.s96.db",
25         BUFSIZ, GDBM_READER, 0600, NULL);
26     
27     if (!dbf) {
28         fprintf(stderr, "Error opening the quota database: %s\n",
29             gdbm_strerror(gdbm_errno));
30         return;
31     }
32
33     value = gdbm_fetch(dbf, key);
34     gdbm_close(dbf);
35     if (value.dptr) {
36         struct quota_entry * entry = (struct quota_entry *) value.dptr;
37
38         printf("Disk #: %d\n", entry->disk_num);
39         printf("Quota : %ldM\n", entry->megabytes);
40         printf("Flags :");
41         /* insert flag processing */
42         printf("\n");
43     } else {
44         fprintf(stderr, "%s is not in the database\n",
45             argv[0]);
46     }
47
48 }
49
50