Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fw32.git;a=commitdiff;h=2156824bb854c6025470ee75325f0a15dc9fa0f5

commit 2156824bb854c6025470ee75325f0a15dc9fa0f5
Author: James Buren <r...@frugalware.org>
Date:   Wed Nov 9 06:34:00 2011 -0600

add fw32-update function for updating fw32 chroot across upgrades

diff --git a/Makefile b/Makefile
index 30b8768..b6c9a24 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CFLAGS ?= -O2
+CFLAGS ?= -O2
CFLAGS += -D_GNU_SOURCE

DESTDIR ?= /
@@ -24,3 +24,4 @@ install: all
ln -sf fw32 $(DESTDIR)/usr/bin/fw32-clean
ln -sf fw32 $(DESTDIR)/usr/bin/fw32-mount-all
ln -sf fw32 $(DESTDIR)/usr/bin/fw32-umount-all
+       ln -sf fw32 $(DESTDIR)/usr/bin/fw32-update
diff --git a/fw32.c b/fw32.c
index f2c0612..c6e7157 100644
--- a/fw32.c
+++ b/fw32.c
@@ -400,6 +400,26 @@ fw32_delete(void)
}

static void
+fw32_update(void)
+{
+  struct stat st;
+  const char **p;
+  char path[PATH_MAX];
+
+  if(stat(FW32_ROOT,&st))
+    error("%s does not exist.\n",FW32_ROOT);
+
+  p = FW32_DIRS;
+
+  while(*p)
+  {
+    snprintf(path,sizeof path,"%s%s",FW32_ROOT,*p++);
+
+    mkdir_parents(path);
+  }
+}
+
+static void
fw32_upgrade(void)
{
char *args1[] =
@@ -512,6 +532,8 @@ main(int argc,char **argv)

if(!strcmp(cmd,"fw32-create"))
fw32_create();
+  else if(!strcmp(cmd,"fw32-update"))
+    fw32_update();
else if(!strcmp(cmd,"fw32-delete"))
fw32_delete();
else if(!strcmp(cmd,"fw32-run"))
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to