#define ZPM_PATH_MAX 256
#endif
+#define ZPM_LOCAL_DB "/var/lib/zpm/local.db"
+
#define ZPM_PACKAGE_NAME_MAX 191
#define ZPM_PACKAGE_VERSION_MAX 58
#define ZPM_PACKAGE_RELEASE_MAX 4
sqlite3 *db;
char *path; /* path to db file */
int error;
+ int dbresult;
+ char *dberrmsg;
+ char *errmsg;
+ char *pkgid;
struct zpm_package *current_package;
};
struct zpm_package {
struct zpm *zpm;
+ struct jsw_hash *ht;
+
+ /* char pointers are just pointers into the hash table */
+ /* integers/times and such are passed through atoi */
+ /* tags and licenses are trees, NULL if not fetched */
char *name;
char *version;
int release;
char *id;
- char *tags;
+ /* null if tags not collected */
+ //struct zpm_tree *tags;
char *description;
char *architecture;
char *url;
- char *status;
- char *licenses;
- char *package;
+ char *status; /* integer code ? */
+ //struct zpm_tree *licenses;
time_t build_time;
time_t install_time;
char checksum[ZPM_HASH_STRLEN+1];
+ struct zpm_package *next;
};
+int zpm_parse_package(char *pstr, char *name, char *ver, int *rel);
+char *zpm_findpkg(struct zpm *zpm, char *pkgstr);
+int zpm_quote(char *value, char *dest, size_t n);
+
struct zpm_file {
char path[ZPM_PATH_MAX];
int mode;
- char tags[64];
+ //struct zpm_tree *tags;
char owner[32];
char group[32];
time_t mtime;
struct zpm_file *next; /* so you can make a linked list */
};
-
-/* NULL? Create? */
int zpm_open(struct zpm *pkg, char *path);
+int zpm_init(struct zpm *pkg, char *path);
int zpm_pkgname(char *base, char *version, int release); /* construct a package file name */
/* flags for preserving mode, owner, etc */
int (*callback)(void *f, int ncols, char **vals, char **cols),
void *data, char **errmsg);
+int zpm_script_hash(struct zpm *zpm, char *pkgstr, char *phase, char *hash);
+
+sqlite3_stmt *zpm_dbquery(struct zpm *zpm, char *query, ...);
+struct zpm *zpm_clearmem(struct zpm *zpm);
#endif