-/*
- * Test program for listing files during regression testing
- */
-
/*
- Copyright (C) 2000-2003 Kern Sibbald and John Walker
+ Bacula® - The Network Backup Solution
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
+ Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
+ The main author of Bacula is Kern Sibbald, with contributions from
+ many others, a complete list can be found in the file AUTHORS.
+ This program is Free Software; you can redistribute it and/or
+ modify it under the terms of version two of the GNU General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
- You should have received a copy of the GNU General Public
- License along with this program; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+ Bacula® is a registered trademark of Kern Sibbald.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
+/*
+ * Test program for listing files during regression testing
+ *
+ * Kern Sibbald, MM
+ *
*/
#include "bacula.h"
#include "findlib/find.h"
-#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32)
-int win32_client = 1;
-#else
-int win32_client = 0;
-#endif
+/* Dummy functions */
+int generate_daemon_event(JCR *jcr, const char *event) { return 1; }
+int generate_job_event(JCR *jcr, const char *event) { return 1; }
+void generate_plugin_event(JCR *jcr, bEventType eventType, void *value) { }
/* Global variables */
static JCR *jcr;
-static int print_file(FF_PKT *ff, void *pkt);
+static int print_file(JCR *jcr, FF_PKT *ff, bool);
static void print_ls_output(char *fname, char *link, int type, struct stat *statp);
static void usage()
"\n"
"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
+" -d <nn> set debug level to <nn>\n"
+" -dt print timestamp in debug output\n"
" -e specify file of exclude patterns\n"
" -i specify file of include patterns\n"
" - read pattern(s) from stdin\n"
char *exc = NULL;
FILE *fd;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
while ((ch = getopt(argc, argv, "ad:e:i:?")) != -1) {
switch (ch) {
case 'a': /* print extended attributes *debug* */
- attrs = 1;
- break;
+ attrs = 1;
+ break;
case 'd': /* set debug level */
- debug_level = atoi(optarg);
- if (debug_level <= 0) {
- debug_level = 1;
- }
- break;
+ if (*optarg == 't') {
+ dbg_timestamp = true;
+ } else {
+ debug_level = atoi(optarg);
+ if (debug_level <= 0) {
+ debug_level = 1;
+ }
+ }
+ break;
case 'e': /* exclude patterns */
- exc = optarg;
- break;
+ exc = optarg;
+ break;
case 'i': /* include patterns */
- inc = optarg;
- break;
+ inc = optarg;
+ break;
case '?':
default:
- usage();
+ usage();
- }
+ }
}
argc -= optind;
argv += optind;
ff = init_find_files();
if (argc == 0 && !inc) {
add_fname_to_include_list(ff, 0, "/"); /* default to / */
- } else {
+ } else {
for (i=0; i < argc; i++) {
if (strcmp(argv[i], "-") == 0) {
- while (fgets(name, sizeof(name)-1, stdin)) {
- strip_trailing_junk(name);
- add_fname_to_include_list(ff, 0, name);
- }
- continue;
- }
- add_fname_to_include_list(ff, 0, argv[i]);
+ while (fgets(name, sizeof(name)-1, stdin)) {
+ strip_trailing_junk(name);
+ add_fname_to_include_list(ff, 0, name);
+ }
+ continue;
+ }
+ add_fname_to_include_list(ff, 0, argv[i]);
}
}
if (inc) {
- fd = fopen(inc, "r");
+ fd = fopen(inc, "rb");
if (!fd) {
- printf("Could not open include file: %s\n", inc);
- exit(1);
+ printf(_("Could not open include file: %s\n"), inc);
+ exit(1);
}
while (fgets(name, sizeof(name)-1, fd)) {
- strip_trailing_junk(name);
- add_fname_to_include_list(ff, 0, name);
+ strip_trailing_junk(name);
+ add_fname_to_include_list(ff, 0, name);
}
fclose(fd);
}
if (exc) {
- fd = fopen(exc, "r");
+ fd = fopen(exc, "rb");
if (!fd) {
- printf("Could not open exclude file: %s\n", exc);
- exit(1);
+ printf(_("Could not open exclude file: %s\n"), exc);
+ exit(1);
}
while (fgets(name, sizeof(name)-1, fd)) {
- strip_trailing_junk(name);
- add_fname_to_exclude_list(ff, name);
+ strip_trailing_junk(name);
+ add_fname_to_exclude_list(ff, name);
}
fclose(fd);
}
- find_files(jcr, ff, print_file, NULL);
+ match_files(jcr, ff, print_file);
+ term_include_exclude_files(ff);
hard_links = term_find_files(ff);
-
+
free_jcr(jcr);
+ term_last_jobs_list(); /* free jcr chain */
close_memory_pool();
sm_dump(false);
exit(0);
}
-static int print_file(FF_PKT *ff, void *pkt)
+static int print_file(JCR *jcr, FF_PKT *ff, bool top_level)
{
switch (ff->type) {
static void print_ls_output(char *fname, char *link, int type, struct stat *statp)
{
- char buf[1000];
+ char buf[1000];
char ec1[30];
char *p, *f;
int n;
p += n;
if (S_ISCHR(statp->st_mode) || S_ISBLK(statp->st_mode)) {
n = sprintf(p, "%4x ", (int)statp->st_rdev);
- } else {
+ } else {
n = sprintf(p, " ");
}
p += n;
*p++ = ' ';
/* Copy link name */
for (f=link; *f && (p-buf) < (int)sizeof(buf); )
- *p++ = *f++;
+ *p++ = *f++;
}
*p++ = '\n';
*p = 0;
fputs(buf, stdout);
}
+
+bool python_set_prog(JCR*, char const*) { return false; }