[Midnightbsd-cvs] src [7503] trunk/lib/libmport/create_primative.c: write owner, group, mode for @() syntax

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri Apr 8 21:14:01 EDT 2016


Revision: 7503
          http://svnweb.midnightbsd.org/src/?rev=7503
Author:   laffer1
Date:     2016-04-08 21:14:01 -0400 (Fri, 08 Apr 2016)
Log Message:
-----------
write owner, group, mode for @() syntax

Modified Paths:
--------------
    trunk/lib/libmport/create_primative.c

Modified: trunk/lib/libmport/create_primative.c
===================================================================
--- trunk/lib/libmport/create_primative.c	2016-04-09 01:13:28 UTC (rev 7502)
+++ trunk/lib/libmport/create_primative.c	2016-04-09 01:14:01 UTC (rev 7503)
@@ -123,7 +123,7 @@
 {
   mportAssetListEntry *e = NULL;
   sqlite3_stmt *stmnt = NULL;
-  char sql[]  = "INSERT INTO assets (pkg, type, data, checksum) VALUES (?,?,?,?)";
+  char sql[]  = "INSERT INTO assets (pkg, type, data, checksum, owner, grp, mode) VALUES (?,?,?,?,?,?,?)";
   char md5[33];
   char file[FILENAME_MAX];
   char cwd[FILENAME_MAX];
@@ -157,10 +157,20 @@
     if (sqlite3_bind_text(stmnt, 3, e->data, -1, SQLITE_STATIC) != SQLITE_OK) {
       RETURN_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
     }
-    
-    if (e->type == ASSET_FILE || e->type == ASSET_SAMPLE || e->type == ASSET_SHELL) {
+    // 4 is computed below 
+    if (sqlite3_bind_text(stmnt, 5, e->owner, -1, SQLITE_STATIC) != SQLITE_OK) { 
+      RETURN_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+    }
+    if (sqlite3_bind_text(stmnt, 6, e->group, -1, SQLITE_STATIC) != SQLITE_OK) {
+       RETURN_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+    }
+    if (sqlite3_bind_text(stmnt, 7, e->mode, -1, SQLITE_STATIC) != SQLITE_OK) {
+       RETURN_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+    }
+
+    if (e->type == ASSET_FILE || e->type == ASSET_SAMPLE || e->type == ASSET_SHELL || e->type == ASSET_FILE_OWNER_MODE) {
       /* Don't prepend cwd onto absolute file paths (this is useful for update) */
-      if (*(e->data) == '/') {
+      if (e->data[0] == '/') {
         (void)strlcpy(file, e->data, FILENAME_MAX);
       } else {
         (void)snprintf(file, FILENAME_MAX, "%s/%s", cwd, e->data);



More information about the Midnightbsd-cvs mailing list