-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathmain-hang.c
46 lines (39 loc) · 1.93 KB
/
main-hang.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* PANDAseq -- Assemble paired FASTQ Illumina reads and strip the region between amplification primers.
Copyright (C) 2011-2012 Andre Masella
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 3 of the License, or
(at your option) any later version.
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, see <http://www.gnu.org/licenses/>.
*/
#include<stdlib.h>
#include "config.h"
#include "pandaseq.h"
#include "misc.h"
int main(
int argc,
char **argv) {
MANAGED_STACK(PandaOutputSeq, output);
PandaAssembler assembler;
PandaArgsHang data = panda_args_hang_new(panda_args_fastq_new(), (PandaDestroy) panda_args_fastq_free, (PandaTweakGeneral) panda_args_fastq_tweak, (PandaOpener) panda_args_fastq_opener, (PandaSetup) panda_args_fastq_setup);
const panda_tweak_general **general_args;
size_t general_args_length;
PandaMux mux;
bool result;
int threads;
general_args = panda_args_hang_args(panda_args_fastq_args, panda_args_fastq_args_length, &general_args_length);
if (!panda_parse_args(argv, argc, panda_stdargs, panda_stdargs_length, general_args, general_args_length, (PandaTweakGeneral) panda_args_hang_tweak, (PandaOpener) panda_args_hang_opener, (PandaSetup) panda_args_hang_setup, data, &assembler, &mux, &threads, &output, &output_data, &output_destroy)) {
free(general_args);
panda_args_hang_free(data);
return 1;
}
free(general_args);
result = panda_run_pool(threads, assembler, mux, output, output_data, output_destroy);
panda_args_hang_free(data);
return result ? 0 : 1;
}