* Version $Id$
*/
/*
- Copyright (C) 2000-2005 Kern Sibbald
+ Copyright (C) 2000-2006 Kern Sibbald
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
- version 2 as ammended with additional clauses defined in the
+ version 2 as amended with additional clauses defined in the
file LICENSE in the main source directory.
This program is distributed in the hope that it will be useful,
static bool list_blocks = false;
static bool list_jobs = false;
static DEV_RECORD *rec;
-static DEV_BLOCK *block;
static JCR *jcr;
static SESSION_LABEL sessrec;
static uint32_t num_files = 0;
static void usage()
{
- fprintf(stderr,
+ fprintf(stderr, _(
"Copyright (C) 2000-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: bls [options] <device-name>\n"
" -b <file> specify a bootstrap file\n"
" -c <file> specify a config file\n"
" -p proceed inspite of errors\n"
" -v be verbose\n"
" -V specify Volume names (separated by |)\n"
-" -? print this message\n\n");
+" -? print this message\n\n"), VERSION, BDATE);
exit(1);
}
char *bsrName = NULL;
bool ignore_label_errors = false;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
working_directory = "/tmp";
my_name_is(argc, argv, "bls");
init_msg(NULL, NULL); /* initialize message handler */
case 'i': /* include list */
if ((fd = fopen(optarg, "r")) == NULL) {
- Pmsg2(0, "Could not open include file: %s, ERR=%s\n",
+ Pmsg2(0, _("Could not open include file: %s, ERR=%s\n"),
optarg, strerror(errno));
exit(1);
}
}
dcr = jcr->dcr;
rec = new_record();
- block = new_block(dev);
attr = new_attr();
/*
* Assume that we have already read the volume label.
* If on second or subsequent volume, adjust buffer pointer
*/
if (dev->VolHdr.PrevVolumeName[0] != 0) { /* second volume */
- Pmsg1(0, "\n"
-"Warning, this Volume is a continuation of Volume %s\n",
+ Pmsg1(0, _("\n"
+ "Warning, this Volume is a continuation of Volume %s\n"),
dev->VolHdr.PrevVolumeName);
}
release_device(jcr->dcr);
free_attr(attr);
free_record(rec);
- free_block(block);
free_jcr(jcr);
term_dev(dev);
}
/* List just block information */
static void do_blocks(char *infname)
{
+ char buf1[100], buf2[100];
+ DEV_BLOCK *block = dcr->block;
for ( ;; ) {
if (!read_block_from_device(dcr, NO_BLOCK_NUMBER_CHECK)) {
Dmsg1(100, "!read_block(): ERR=%s\n", dev->strerror());
free_record(record);
Jmsg(jcr, M_INFO, 0, _("Mounted Volume \"%s\".\n"), dcr->VolumeName);
} else if (dev->at_eof()) {
- Jmsg(jcr, M_INFO, 0, _("Got EOF at file %u on device %s, Volume \"%s\"\n"),
+ Jmsg(jcr, M_INFO, 0, _("End of file %u on device %s, Volume \"%s\"\n"),
dev->file, dev->print_name(), dcr->VolumeName);
Dmsg0(20, "read_record got eof. try again\n");
continue;
block->VolSessionId, block->VolSessionTime);
if (verbose == 1) {
read_record_from_block(block, rec);
- Pmsg9(-1, "File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n",
+ Pmsg9(-1, _("File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n"),
dev->file, dev->block_num,
block->BlockNumber, block->block_len,
- FI_to_ascii(rec->FileIndex), rec->VolSessionId, rec->VolSessionTime,
- stream_to_ascii(rec->Stream, rec->FileIndex), rec->data_len);
+ FI_to_ascii(buf1, rec->FileIndex), rec->VolSessionId, rec->VolSessionTime,
+ stream_to_ascii(buf2, rec->Stream, rec->FileIndex), rec->data_len);
rec->remainder = 0;
} else if (verbose > 1) {
dump_block(block, "");
} else {
- printf("Block: %d size=%d\n", block->BlockNumber, block->block_len);
+ printf(_("Block: %d size=%d\n"), block->BlockNumber, block->block_len);
}
}
if (file_is_included(ff, attr->fname) && !file_is_excluded(ff, attr->fname)) {
if (verbose) {
- Pmsg5(-1, "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n",
+ Pmsg5(-1, _("FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n"),
rec->FileIndex, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
}
print_ls_output(jcr, attr);
memset(sessrec, 0, sizeof(sessrec));
switch (rec->FileIndex) {
case PRE_LABEL:
- rtype = "Fresh Volume Label";
+ rtype = _("Fresh Volume Label");
break;
case VOL_LABEL:
- rtype = "Volume Label";
+ rtype = _("Volume Label");
unser_volume_label(dev, rec);
break;
case SOS_LABEL:
- rtype = "Begin Job Session";
+ rtype = _("Begin Job Session");
unser_session_label(sessrec, rec);
break;
case EOS_LABEL:
- rtype = "End Job Session";
+ rtype = _("End Job Session");
break;
case EOM_LABEL:
- rtype = "End of Medium";
+ rtype = _("End of Medium");
break;
default:
- rtype = "Unknown";
+ rtype = _("Unknown");
break;
}
Dmsg5(10, "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n",
rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
if (verbose) {
- Pmsg5(-1, "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n",
+ Pmsg5(-1, _("%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"),
rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
}
}
bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec) { return 1;}
bool dir_send_job_status(JCR *jcr) {return 1;}
int generate_job_event(JCR *jcr, const char *event) { return 1; }
-VOLRES *new_volume(const char *VolumeName, DEVICE *dev) { return NULL; }
-bool free_volume(DEVICE *dev) { return true; }
bool dir_ask_sysop_to_mount_volume(DCR *dcr)
{
DEVICE *dev = dcr->dev;
- fprintf(stderr, "Mount Volume \"%s\" on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
getchar();
return true;