Aggiunto flag D per scaricare tutti i tracciati standard in un direttorio

a scelta. Usage: BA1 -0 -D <directory> [1|0] [modulo] . Dove gli ultimi
2 parametri servono per scaricare anche le descrizioni (default vero) e
per scaricare solo un cero modulo (default tutti).


git-svn-id: svn://10.65.10.50/trunk@3464 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-08-29 08:49:46 +00:00
parent 101672e1c2
commit 2573318e73

View File

@ -10,7 +10,6 @@
#include <urldefid.h>
#include <utility.h>
#include <validate.h>
#include <progind.h>
#include <extcdecl.h>
#include <execp.h>
@ -65,6 +64,7 @@ protected:
void open_history();
void put_history(const char* firm);
void close_history();
void dump_trc(const char * dir, const bool des_too, const long modules);
public:
@ -265,18 +265,46 @@ bool TManutenzione_app::create() // initvar e arrmask
TApplication::create();
_firm = get_firm();
if (argc() > 2)
TString sw(argc()>2 ? argv(2) : "");
if (argc() > 2 && sw == "-C")
{
update();
return FALSE;
}
else
{
if (!set_firm())
if (sw == "-D")
{
const int c = argc();
bool des_too = 1; // Anche le descrizioni
long modules = -1; // Tutti i moduli
if (c < 4)
{
error_box("Usage: BA1 -0 -D <directory> [0|1] [<module number>]");
return FALSE;
}
TFilename dir(argv(3));
if (!fexist(dir))
{
error_box("Non esiste il direttorio %s", (const char*)dir);
return FALSE;
}
if (c == 5)
des_too = (bool)atoi(argv(4));
if (c == 6)
modules = atol(argv(5));
prefix().set("");
load_des();
dump_trc(dir,des_too,modules);
return FALSE;
}
else
if (!set_firm())
return FALSE;
load_des();
const bool superprassi = user() == "PRASSI";
_mask = new TMask ("ba1100a");
_browse = new TDir_sheet ("Manutenzione file di sistema", superprassi ? 0xC : 0x8);
@ -379,6 +407,40 @@ void TManutenzione_app::close_history()
remove(History_file);
}
void TManutenzione_app::dump_trc(const char * dir, const bool des_too, const long modules)
{
const int items = _recs.items();
TString s("Scarico dei tracciati standard in ");
s << dir;
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
p.setstatus(1);
for (int i=2;i<=items;i++) //Salta il primo (dir.gen)
{
p.addstatus(1);
TTrec& rc = (TTrec&)_recs[i];
TDir& dr = (TDir&)_dirs[i];
const long file_mod = (long)abs((int)dr.flags());
if (modules != -1 && file_mod != modules) continue; // se non fa parte del modulo lo salta
TFilename descfname;
descfname.format("%s/d%d.des", DESCDIR, i);
if (!fexist(descfname)) // crea la descrizione se non esiste
{
FILE * fd = fopen(descfname, "w");
if (fd != NULL)
fclose(fd);
}
TConfig conf_des(descfname,DESCPAR);
if (des_too) rc.set_des(&conf_des);
TFilename fn(dir);
fn << "/d";fn << i;
fn.ext("trr");
ofstream out(fn);
out << rc;
}
}
const char* TManutenzione_app::dumpfilename(const FileDes& dep) const
{
TFilename n; n.tempdir();