Project

General

Profile

1
#!/bin/bash
2
# Imports all inputs at once
3

    
4
import_all_main ()
5
{
6
    local self="${BASH_SOURCE[0]}"
7
    local selfDir="$(dirname -- "$self")"
8
    cd "$selfDir/.."
9
    
10
    if test "${BASH_LINENO[1]}" = 0; then # was run without initial "."
11
        echo "usage: [version=...] [inputs=(inputs/src/ ...)]; . $self \
12
[vars...] (note initial \".\")"|fold -s >&2
13
        return 2
14
    fi
15
    : ${version=$(make -s version)}
16
    local by_col=${by_col-1} full_import=1
17
    export version by_col full_import
18
    
19
    # remove any leftover TNRS lockfile. usually, the PID in it would not exist,
20
    # but sometimes it now refers to an active process which blocks tnrs.make.
21
    "rm" inputs/.TNRS/tnrs/tnrs.make.lock
22
    
23
    make schemas/$version/install
24
    
25
    local all=1; . "$selfDir/with_all" Source/import by_col=1 "$@"
26
        # note that this isn't affected by $import_source
27
    wait # wait for asynchronous commands
28
    unset all
29
    
30
    local import_source= # Source tables have already been imported
31
    export import_source # must come after local
32
    
33
    make inputs/.herbaria/import "$@" &
34
    sleep 5 # wait for make commands to scroll by
35
    
36
    make inputs/.geoscrub/import "$@" &
37
    sleep 5 # wait for make commands to scroll by
38
    
39
    make inputs/.NCBI/import by_col=1 "$@"
40
    
41
    wait # wait for asynchronous commands
42
    
43
    . "$selfDir/with_all" import_scrub "$@" # uses $by_col
44
    
45
    local jobs="$(jobs -p)"
46
    echo "import_scrub PIDs: $jobs" >&2
47
    
48
    bin/after_import $jobs &
49
    echo "after_import PID: $!" >&2
50
    
51
    . bin/disown_all
52
}
53
import_all_main "$@"
(30-30/85)