]> git.mxchange.org Git - fba.git/blob - nodeinfo.sh
Continued:
[fba.git] / nodeinfo.sh
1 #!/bin/sh
2
3 MODE=""
4 DOMAIN_LIST=""
5 SOFTWARE_LIST=""
6
7 if [ "$1" = "--help" ]
8 then
9         echo "Usage: $0 [file|--software|--nodeinfo|--generator|--timeout|--same]"
10         exit 255
11 elif [ -n "$1" -a -f "$1" ]
12 then
13         DOMAIN_LIST=$(cat "$1")
14         MODE="file"
15 elif [ "$1" = "--nodeinfo" ]
16 then
17         DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL AND nodeinfo_url IS NOT NULL ORDER BY last_updated ASC;")
18         MODE="nodeinfo"
19 elif [ "$1" = "--timeout" ]
20 then
21         DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE last_error_details LIKE '%Timeout%' ORDER BY last_updated ASC;")
22         MODE="timeout"
23 elif [ "$1" = "--software" -a -f "software.txt" ]
24 then
25         SOFTWARE_LIST=$(cat software.txt)
26         MODE="software"
27 elif [ "$1" = "--generator" ]
28 then
29         DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE detection_mode='GENERATOR' ORDER BY last_updated ASC;")
30         MODE="generator"
31 elif [ "$1" = "--same" ]
32 then
33         DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE domain=software ORDER BY last_updated ASC;")
34         MODE="same"
35 else
36         DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL AND nodeinfo_url IS NOT NULL ORDER BY last_updated ASC;")
37 fi
38
39 if [ -z "${DOMAIN_LIST}" -a -z "${SOFTWARE_LIST}" ]
40 then
41         echo "$0: No domains or software found! MODE='${MODE}'"
42         exit 255
43 fi
44
45 if [ -n "${DOMAIN_LIST}" ]
46 then
47         for DOMAIN in ${DOMAIN_LIST};
48         do
49                 echo "$0: DOMAIN='${DOMAIN}'"
50                 if [ -n "$1" -a -z "${MODE}" ]
51                 then
52                         ./fba.py update_nodeinfo --domain=${DOMAIN} "$1"
53                 elif [ -n "$2" ]
54                 then
55                         ./fba.py update_nodeinfo --domain=${DOMAIN} "$2"
56                 else
57                         ./fba.py update_nodeinfo --domain=${DOMAIN}
58                 fi
59         done
60 elif [ -n "${SOFTWARE_LIST}" ]
61 then
62         for SOFTWARE in ${SOFTWARE_LIST};
63         do
64                 echo "$0: SOFTWARE='${SOFTWARE}'"
65                 if [ -n "$2" ]
66                 then
67                         ./fba.py update_nodeinfo --software=${SOFTWARE} "$2"
68                 else
69                         ./fba.py update_nodeinfo --software=${SOFTWARE}
70                 fi
71         done
72 fi
73
74 echo "$0: All done."