exit non-zero if findpkg doesn't find a package
static int prow(void *f, int ncols, char **vals, char **cols) {
FILE *out = f;
int i;
static int prow(void *f, int ncols, char **vals, char **cols) {
FILE *out = f;
int i;
fprintf(out, "%s", vals[i]);
}
fprintf(out, "\n");
fprintf(out, "%s", vals[i]);
}
fprintf(out, "\n");
int main(int ac, char **av){
struct zpm pkg;
int main(int ac, char **av){
struct zpm pkg;
char *select = "select package, version, release, package||'-'||version||'-'||release as pkgid from packages";
char *group = "group by package having max( version||'-'||release collate vercmp) order by length(package), package, version||'-'||release collate vercmp";
char *select = "select package, version, release, package||'-'||version||'-'||release as pkgid from packages";
char *group = "group by package having max( version||'-'||release collate vercmp) order by length(package), package, version||'-'||release collate vercmp";
+ dbfile = getenv("ZPMDB");
+
+ if (ac > 1) {
+ dbfile = av[1];
+ }
+
/* given a package name, get the packages */
/* no package name, get all */
/* given a package name, get the packages */
/* no package name, get all */
- if (zpm_open(&pkg, av[1])) {
+ if (zpm_open(&pkg, dbfile)) {
-// char where[1024] = "";
- /* TODO allow more args to nail down version and release */
- if (ac >= 3) {
int release;
char version[32];
char package[32];
int release;
char version[32];
char package[32];
- parse_package(av[2], package, version, &release);
+ pkgstr = av[2];
+
+ parse_package(pkgstr, package, version, &release);
if (release != -1) {
/* all three */
sprintf(sql, "%s where package = '%s' and version = "
if (release != -1) {
/* all three */
sprintf(sql, "%s where package = '%s' and version = "
sprintf(sql, "%s %s;", select, group);
}
sprintf(sql, "%s %s;", select, group);
}
- /* install a collation function */
- zpm_addvercmp(&pkg);
- /* sqlite seems to need the columns in the result to
- * do the sort right */
-// zpm_exec(&pkg, "select package, version, release, package||'-'||version||'-'||release as pkgid from packages order by package, version collate vercmp, cast(release as integer)", prow, stdout, &errmsg);
-// fprintf(stdout, "\n");
-
zpm_exec(&pkg, sql, prow, stdout, &errmsg);
}
zpm_close(&pkg);
zpm_exec(&pkg, sql, prow, stdout, &errmsg);
}
zpm_close(&pkg);