[Midnightbsd-cvs] src [6995] trunk/lib/libmport: add preliminary support for sample files aka @sample in the plist.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Apr 18 14:10:03 EDT 2015
Revision: 6995
http://svnweb.midnightbsd.org/src/?rev=6995
Author: laffer1
Date: 2015-04-18 14:10:02 -0400 (Sat, 18 Apr 2015)
Log Message:
-----------
add preliminary support for sample files aka @sample in the plist. This currently only installs the sample file, but eventually will do some additional steps.
Modified Paths:
--------------
trunk/lib/libmport/bundle_read_install_pkg.c
trunk/lib/libmport/create_primative.c
trunk/lib/libmport/delete_primative.c
trunk/lib/libmport/merge_primative.c
trunk/lib/libmport/mport.h
trunk/lib/libmport/plist.c
trunk/lib/libmport/verify.c
Modified: trunk/lib/libmport/bundle_read_install_pkg.c
===================================================================
--- trunk/lib/libmport/bundle_read_install_pkg.c 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/bundle_read_install_pkg.c 2015-04-18 18:10:02 UTC (rev 6995)
@@ -105,7 +105,7 @@
orig_cwd = getcwd(NULL, 0);
/* get the file count for the progress meter */
- if (mport_db_prepare(db, &count, "SELECT COUNT(*) FROM stub.assets WHERE type=%i AND pkg=%Q", ASSET_FILE, pkg->name) != MPORT_OK)
+ if (mport_db_prepare(db, &count, "SELECT COUNT(*) FROM stub.assets WHERE (type=%i or type=%i) AND pkg=%Q", ASSET_FILE, ASSET_SAMPLE, pkg->name) != MPORT_OK)
RETURN_CURRENT_ERROR;
switch (sqlite3_step(count)) {
@@ -196,6 +196,8 @@
goto ERROR;
break;
case ASSET_FILE:
+ /* FALLS THROUGH */
+ case ASSET_SAMPLE:
if (mport_bundle_read_next_entry(bundle, &entry) != MPORT_OK)
goto ERROR;
@@ -241,7 +243,7 @@
SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
goto ERROR;
}
- if (type == ASSET_FILE) {
+ if (type == ASSET_FILE || type == ASSET_SAMPLE) {
/* don't put the root in the database! */
if (sqlite3_bind_text(insert, 2, file + strlen(mport->root), -1, SQLITE_STATIC) != SQLITE_OK) {
SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
Modified: trunk/lib/libmport/create_primative.c
===================================================================
--- trunk/lib/libmport/create_primative.c 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/create_primative.c 2015-04-18 18:10:02 UTC (rev 6995)
@@ -145,7 +145,7 @@
RETURN_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
}
- if (e->type == ASSET_FILE) {
+ if (e->type == ASSET_FILE || e->type == ASSET_SAMPLE) {
/* Don't prepend cwd onto absolute file paths (this is useful for update) */
if (*(e->data) == '/') {
(void)strlcpy(file, e->data, FILENAME_MAX);
@@ -479,7 +479,7 @@
if (e->type == ASSET_CWD)
cwd = e->data == NULL ? pack->prefix : e->data;
- if (e->type != ASSET_FILE) {
+ if (e->type != ASSET_FILE && e->type != ASSET_SAMPLE) {
continue;
}
Modified: trunk/lib/libmport/delete_primative.c
===================================================================
--- trunk/lib/libmport/delete_primative.c 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/delete_primative.c 2015-04-18 18:10:02 UTC (rev 6995)
@@ -59,7 +59,7 @@
}
/* get the file count for the progress meter */
- if (mport_db_prepare(mport->db, &stmt, "SELECT COUNT(*) FROM assets WHERE type=%i AND pkg=%Q", ASSET_FILE, pack->name) != MPORT_OK)
+ if (mport_db_prepare(mport->db, &stmt, "SELECT COUNT(*) FROM assets WHERE (type=%i or type=%i) AND pkg=%Q", ASSET_FILE, ASSET_SAMPLE, pack->name) != MPORT_OK)
RETURN_CURRENT_ERROR;
switch (sqlite3_step(stmt)) {
@@ -117,6 +117,8 @@
switch (type) {
case ASSET_FILE:
+ /* falls through */
+ case ASSET_SAMPLE:
(mport->progress_step_cb)(++current, total, file);
Modified: trunk/lib/libmport/merge_primative.c
===================================================================
--- trunk/lib/libmport/merge_primative.c 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/merge_primative.c 2015-04-18 18:10:02 UTC (rev 6995)
@@ -397,7 +397,7 @@
RETURN_CURRENT_ERROR;
}
- if (mport_db_prepare(db, &files, "SELECT data FROM assets WHERE pkg=%Q AND type=%i", pkgname, ASSET_FILE) != MPORT_OK) {
+ if (mport_db_prepare(db, &files, "SELECT data FROM assets WHERE pkg=%Q AND (type=%i or type=%i)", pkgname, ASSET_FILE, ASSET_SAMPLE) != MPORT_OK) {
mport_bundle_read_finish(NULL, inbundle);
sqlite3_finalize(stmt);
RETURN_CURRENT_ERROR;
Modified: trunk/lib/libmport/mport.h
===================================================================
--- trunk/lib/libmport/mport.h 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/mport.h 2015-04-18 18:10:02 UTC (rev 6995)
@@ -79,7 +79,7 @@
ASSET_COMMENT, ASSET_IGNORE, ASSET_NAME, ASSET_EXEC, ASSET_UNEXEC,
ASSET_SRC, ASSET_DISPLY, ASSET_PKGDEP, ASSET_CONFLICTS, ASSET_MTREE,
ASSET_DIRRM, ASSET_DIRRMTRY, ASSET_IGNORE_INST, ASSET_OPTION, ASSET_ORIGIN,
- ASSET_DEPORIGIN, ASSET_NOINST, ASSET_DISPLAY, ASSET_DIR
+ ASSET_DEPORIGIN, ASSET_NOINST, ASSET_DISPLAY, ASSET_DIR, ASSET_SAMPLE
};
typedef enum _AssetListEntryType mportAssetListEntryType;
Modified: trunk/lib/libmport/plist.c
===================================================================
--- trunk/lib/libmport/plist.c 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/plist.c 2015-04-18 18:10:02 UTC (rev 6995)
@@ -200,6 +200,8 @@
return ASSET_MTREE;
if (STRING_EQ(s, "option"))
return ASSET_OPTION;
+ if (STRING_EQ(s, "sample"))
+ return ASSET_SAMPLE;
return ASSET_INVALID;
}
Modified: trunk/lib/libmport/verify.c
===================================================================
--- trunk/lib/libmport/verify.c 2015-04-08 01:35:45 UTC (rev 6994)
+++ trunk/lib/libmport/verify.c 2015-04-18 18:10:02 UTC (rev 6995)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__MBSDID("$MidnightBSD: src/lib/libmport/verify.c,v 1.8.2.1 2013/07/17 22:54:04 laffer1 Exp $");
+__MBSDID("$MidnightBSD$");
#include <sys/types.h>
#include <sys/stat.h>
@@ -81,6 +81,7 @@
switch (type) {
case ASSET_FILE:
+ case ASSET_SAMPLE:
if (lstat(file, &st) != 0) {
mport_call_msg_cb(mport, "Can't stat %s: %s", file, strerror(errno));
break; /* next asset */
More information about the Midnightbsd-cvs
mailing list