From b29f1f4498692c5122136f00e4c2e40ca89202ab Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Wed, 12 Jan 2011 14:45:57 +0000 Subject: [PATCH] * support "." as parameter when creating a package, in order to simplify creating a package for the contents of the current folder git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40213 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/bin/package/command_create.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/bin/package/command_create.cpp b/src/bin/package/command_create.cpp index 87089df691..7bf1e8424e 100644 --- a/src/bin/package/command_create.cpp +++ b/src/bin/package/command_create.cpp @@ -6,6 +6,7 @@ #include "package.h" +#include #include #include #include @@ -74,10 +75,30 @@ printf("Init(): %s\n", strerror(error)); // add files for (int i = 0; i < fileNameCount; i++) { - error = packageWriter.AddEntry(fileNames[i]); + if (strcmp(fileNames[i], ".") == 0) { + DIR* dir = opendir ("."); + if (dir == NULL) { + fprintf(stderr, "Error: Failed to opendir '.': %s\n", + strerror(errno)); + return 1; + } + while (dirent* entry = readdir(dir)) { + if (strcmp(entry->d_name, ".") == 0 + || strcmp(entry->d_name, "..") == 0) + continue; + error = packageWriter.AddEntry(entry->d_name); +printf("AddEntry(\"%s\"): %s\n", entry->d_name, strerror(error)); + if (error != B_OK) + return 1; + } + closedir (dir); + + } else { + error = packageWriter.AddEntry(fileNames[i]); printf("AddEntry(\"%s\"): %s\n", fileNames[i], strerror(error)); - if (error != B_OK) - return 1; + if (error != B_OK) + return 1; + } } // write the package