tList package installed - pm - barely a pack manager
HTML git clone git://z3bra.org/pm
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit b1f152ac97a08e6bc3c5c401a36228643ce77672
DIR parent 4cddf9af68b6e22c51621a9c04159a266f23adc5
HTML Author: z3bra <willyatmailoodotorg>
Date: Wed, 30 Dec 2015 12:11:29 +0100
List package installed
Diffstat:
M pm.c | 35 ++++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
---
DIR diff --git a/pm.c b/pm.c
t@@ -1,3 +1,4 @@
+#include <dirent.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
t@@ -48,6 +49,7 @@ void usage(char *name);
int p_mkdir(char *dir, mode_t mode);
char *base_name(char *path);
int inspect(int fd, char *filename);
+int list_local(const char *datadir);
int metadata(char *datadir, char *filename);
int pack(char *out, char **filename);
int unpack(char *root, char *in);
t@@ -128,6 +130,25 @@ inspect(int fd, char *filename)
return 0;
}
+
+int
+list_local(const char *datadir)
+{
+ DIR *d;
+ struct dirent *p;
+
+ if (!(d = opendir(datadir))) {
+ perror("opendir");
+ return -1;
+ }
+
+ while ((p = readdir(d)))
+ if (strcmp(p->d_name, ".") && strcmp(p->d_name, ".."))
+ printf("%s\n", p->d_name);
+
+ return 0;
+}
+
/*
* write metadata about a package file
*
t@@ -353,17 +374,20 @@ main (int argc, char **argv)
action = ACTION_INSPECT;
fn = EARGF(usage(argv0));
break;
+ case 'l':
+ action = ACTION_LIST_LOCAL;
+ break;
case 'h':
default:
usage(argv0);
return 0;
}ARGEND;
- if (fn)
+ if (fn) {
p = pack_load(fn);
-
- if (!p)
- return ERR_PACKAGE_LOAD;
+ if (!p)
+ return ERR_PACKAGE_LOAD;
+ }
switch (action) {
case ACTION_INSTALL:
t@@ -375,12 +399,13 @@ main (int argc, char **argv)
return inspect(1, p->path);
case ACTION_PACKAGE:
return pack(p->path, argv);
+ case ACTION_LIST_LOCAL:
+ return list_local(PACKAGE_DATA);
/* handle me, Octave */
case ACTION_REMOVE:
case ACTION_UPDATE:
case ACTION_LIST_FILES:
case ACTION_LIST_DEPS:
- case ACTION_LIST_LOCAL:
case ACTION_LIST_REMOTE:
default:
usage(argv0);