diff --git a/src/bee-dep.c b/src/bee-dep.c index c94d0fd..27b981f 100644 --- a/src/bee-dep.c +++ b/src/bee-dep.c @@ -30,54 +30,205 @@ #include #include #include -#include #include #include #include +#include #include "graph.h" #define CACHENAME "index.db" +#define TMPNAME "index.tmp" +#define LOCKNAME "index.lock" + +#define REBUILD 1 +#define UPDATE 2 +#define REMOVE 3 +#define LIST 4 +#define CONFLICTS 5 + +static char *bee_version(void) +{ + static char *bee_v = NULL; + + if (!bee_v) + bee_v = getenv("BEE_VERSION"); + + return bee_v; +} + +static char *bee_metadir(void) +{ + static char *bee_md = NULL; + + if (!bee_md) + bee_md = getenv("BEE_METADIR"); + + return bee_md; +} + +static char *bee_cachedir(void) +{ + static char *bee_cd = NULL; + + if (!bee_cd) + bee_cd = getenv("BEE_CACHEDIR"); + + return bee_cd; +} + +static void get_bee_variables(void) +{ + if (!bee_version()) { + fprintf(stderr, "BEE-ERROR: please call bee-dep from bee\n"); + exit(1); + } + + if (!bee_metadir()) { + fprintf(stderr, "BEE-ERROR: BEE_METADIR not set\n"); + exit(1); + } + + if (!bee_cachedir()) { + fprintf(stderr, "BEE_ERROR: BEE_CACHEDIR not set\n"); + exit(1); + } +} + +static char *cache_filename(void) +{ + static char cache[PATH_MAX + 1] = {0}; + + if (!cache[0]) + sprintf(cache, "%s/%s", bee_cachedir(), CACHENAME); + + return cache; +} + +static char *lock_filename(void) +{ + static char lock[PATH_MAX + 1] = {0}; + + if (!lock[0]) + sprintf(lock, "%s/%s", bee_cachedir(), LOCKNAME); + + return lock; +} + +static void usage_header(void) +{ + printf("bee-dep v%s 2011\n" + " by Matthias Ruester and Lucas Schwass\n" + " Max Planck Institute for Molecular Genetics Berlin Dahlem\n\n", + getenv("BEE_VERSION")); +} static void usage(void) { - printf("bee-dep v%s 2011\n" - " by Matthias Ruester and Lucas Schwass\n" - " Max Planck Institute for Molecular Genetics Berlin Dahlem\n\n" - - "Usage: bee dep