tOnly update if versions differ - pm - barely a pack manager
(HTM) git clone git://z3bra.org/pm
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 1122cb5b5c7dc42336705a96f9948cd36b9891a7
(DIR) parent af900cc7fe4dc5326abf194645263bcbf789cabf
(HTM) Author: z3bra <contactatz3bradotorg>
Date: Sat, 25 Nov 2017 18:34:49 +0100
Only update if versions differ
In case pack version is the same, the update will fail for this pack. An
update can be forced in order to reinstall a pack (delete + add) with
tthe -f flag.
Diffstat:
M pm.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/pm.c b/pm.c
t@@ -840,7 +840,7 @@ int
update(const char *rootfs, const char *datadir, char *name)
{
int r = 0, tmp = overwrite;
- char path[PATH_MAX];
+ char path[PATH_MAX], ver[LINE_MAX];
struct pack *p = NULL;
if (re_match(PACK_FORMAT, name) != 0) {
t@@ -863,6 +863,13 @@ update(const char *rootfs, const char *datadir, char *name)
return ERR_DELETE;
}
+ inspect_version(datadir, p->name, ver);
+ if (!overwrite && !strncmp(p->version, ver, LINE_MAX)) {
+ fprintf(stderr, "%s: Already at version %s\n", p->name, p->version);
+ pack_free(p);
+ return ERR_DELETE;
+ }
+
if (pack_delete(rootfs, datadir, p) != 0) {
pack_free(p);
return ERR_DELETE;