PERFORCE change 123411 for review
Garrett Cooper
gcooper at FreeBSD.org
Fri Jul 13 00:06:27 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=123411
Change 123411 by gcooper at optimus-revised_pkgtools on 2007/07/13 00:06:05
Not sure why but existing file never made it to the depot..
Affected files ...
.. //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#2 edit
Differences ...
==== //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#2 (text+ko) ====
@@ -268,6 +268,10 @@
{
char cmd[FILENAME_MAX];
+ static struct timespec before, after, time_diff;
+
+ clock_gettime(CLOCK_REALTIME, &before);
+
if (fname[0] == '/')
snprintf(cmd, FILENAME_MAX, "/bin/cp -r %s %s", fname, to);
else
@@ -276,6 +280,15 @@
cleanup(0);
errx(2, "%s: could not perform '%s'", __func__, cmd);
}
+
+ clock_gettime(CLOCK_REALTIME, &after);
+
+ time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+ time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+ printf( "(%s) Difference: %3.20lf secs\n", "copy_file", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) );
+
}
void
@@ -283,6 +296,10 @@
{
char cmd[FILENAME_MAX];
+ static struct timespec before, after, time_diff;
+
+ clock_gettime(CLOCK_REALTIME, &before);
+
if (fname[0] == '/')
snprintf(cmd, FILENAME_MAX, "/bin/mv %s %s", fname, to);
else
@@ -291,6 +308,15 @@
cleanup(0);
errx(2, "%s: could not perform '%s'", __func__, cmd);
}
+
+ clock_gettime(CLOCK_REALTIME, &after);
+
+ time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+ time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+ printf( "(%s) Difference: %3.20lf secs\n", "move_file", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) );
+
}
/*
@@ -306,16 +332,22 @@
{
char cmd[FILENAME_MAX * 3];
+ static struct timespec before, after, time_diff;
+
+ clock_gettime(CLOCK_REALTIME, &before);
+
if (!to) {
/* If absolute path, use it */
if (*fname == '/')
dir = "/";
+
snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - -C %s %s | /usr/bin/tar xpf -",
dir, fname);
}
else
snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - %s | /usr/bin/tar xpf - -C %s",
fname, dir);
+
#ifdef DEBUG
printf("Using '%s' to copy trees.\n", cmd);
#endif
@@ -323,16 +355,33 @@
cleanup(0);
errx(2, "%s: could not perform '%s'", __func__, cmd);
}
+
+ clock_gettime(CLOCK_REALTIME, &after);
+
+ time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+ time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+ printf( "(%s) Difference: %3.20lf secs\n", "copy_heirarchy", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) );
+
}
/* Unpack a tar file */
int
unpack(const char *pkg, const char *flist)
{
+
+ static struct timespec before, after, time_diff;
+
+ clock_gettime(CLOCK_REALTIME, &before);
+
const char *comp, *cp;
char suff[80];
- comp = "";
+ int ret_code = 0;
+
+ comp = "-j";
+
/*
* Figure out by a crude heuristic whether this or not this is probably
* compressed and whichever compression utility was used (gzip or bzip2).
@@ -341,25 +390,27 @@
cp = strrchr(pkg, '.');
if (cp) {
strcpy(suff, cp + 1);
- if (strchr(suff, 'z') || strchr(suff, 'Z')) {
- if (strchr(suff, 'b'))
- comp = "-j";
- else
- comp = "-z";
+ if ((strchr(suff, 'z') || strchr(suff, 'Z')) && !strchr(suff, 'b')) {
+ comp = "-z";
}
}
}
- else
-#if defined(__FreeBSD_version) && __FreeBSD_version >= 500039
- comp = "-j";
-#else
- comp = "-z";
-#endif
+
if (vsystem("/usr/bin/tar -xp %s -f '%s' %s", comp, pkg, flist ? flist : "")) {
warnx("tar extract of %s failed!", pkg);
- return 1;
+ ret_code = 1;
}
- return 0;
+
+ clock_gettime(CLOCK_REALTIME, &after);
+
+ time_diff.tv_nsec = after.tv_nsec - before.tv_nsec;
+
+ time_diff.tv_sec = after.tv_sec - before.tv_sec;
+
+ printf( "(%s) Difference: %3.20lf secs\n", "unpack", (double) ( time_diff.tv_sec + time_diff.tv_nsec/1e9 ) );
+
+ return ret_code;
+
}
/*
More information about the p4-projects
mailing list