mirror of
git://projects.qi-hardware.com/cae-tools.git
synced 2024-12-22 17:41:09 +02:00
spool: support jobs with more than one file
We could do this already, by piping from cat. But this way is cleaner.
This commit is contained in:
parent
6c3bc3e58e
commit
c422be5543
@ -22,36 +22,11 @@
|
|||||||
#define BUF_SIZE 8192
|
#define BUF_SIZE 8192
|
||||||
|
|
||||||
|
|
||||||
static void usage(const char *name)
|
static void spool_file(FILE *file)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: %s [file]\n", name);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, const char **argv)
|
|
||||||
{
|
|
||||||
FILE *file;
|
|
||||||
char buf[BUF_SIZE+1];
|
char buf[BUF_SIZE+1];
|
||||||
size_t n;
|
size_t n;
|
||||||
char *port;
|
|
||||||
|
|
||||||
switch (argc) {
|
|
||||||
case 1:
|
|
||||||
file = stdin;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
file = fopen(argv[1], "r");
|
|
||||||
if (!file) {
|
|
||||||
perror(argv[1]);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
usage(*argv);
|
|
||||||
}
|
|
||||||
port = getenv("PORT");
|
|
||||||
serial_open(port ? port : DEFAULT_PORT);
|
|
||||||
while (1) {
|
while (1) {
|
||||||
n = fread(buf, 1, BUF_SIZE, file);
|
n = fread(buf, 1, BUF_SIZE, file);
|
||||||
if (!n)
|
if (!n)
|
||||||
@ -59,6 +34,51 @@ int main(int argc, const char **argv)
|
|||||||
buf[n] = 0;
|
buf[n] = 0;
|
||||||
serial_printf("%s", buf);
|
serial_printf("%s", buf);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void usage(const char *name)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "usage: %s [file ...]\n", name);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, const char **argv)
|
||||||
|
{
|
||||||
|
FILE **files;
|
||||||
|
char *port;
|
||||||
|
int n_files, i;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Open all files before starting to spool, so that we don't risk
|
||||||
|
* failing in the middle of the job.
|
||||||
|
*/
|
||||||
|
n_files = argc == 1 ? 1 : argc-1;
|
||||||
|
files = malloc(sizeof(FILE *));
|
||||||
|
if (!files) {
|
||||||
|
perror("malloc");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc == 1) {
|
||||||
|
*files = stdin;
|
||||||
|
} else {
|
||||||
|
if (*argv[1] == '-')
|
||||||
|
usage(*argv);
|
||||||
|
for (i = 0; i != n_files; i++) {
|
||||||
|
files[i] = fopen(argv[i+1], "r");
|
||||||
|
if (!files[i]) {
|
||||||
|
perror(argv[i+1]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
port = getenv("PORT");
|
||||||
|
serial_open(port ? port : DEFAULT_PORT);
|
||||||
|
for (i = 0; i != n_files; i++)
|
||||||
|
spool_file(files[i]);
|
||||||
sleep(3600);
|
sleep(3600);
|
||||||
serial_close();
|
serial_close();
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user