1This is a list of developer tools included in the source repository
2but not necessarily shipped in the tarball or binary distributions If you're
3viewing it with Emacs, you can try doing Ctl-C Ctl-t browse through
4the outline headers.  Ctl-C Ctl-a will unfold them again.
5
6== ais.py ==
7
8AIS packet decoder in Python.  Useful as a check on the C code.
9Also, if you have AISHub privileges (see <http://www.aishub.net/>),
10a command like
11
12      nc data.aishub.net 4006 | devtools/ais.py -c -v -t RANGE >AIS.LOG 2>&1"
13
14is a handy way to capture filtered AIS samples; RANGE can be a comma-separated
15list of AIS types.
16
17== aidvmtable ==
18
19Generate an asciidoc table of the six-bit encoding used in AIVDM packets.
20
21== cycle_analyzer ==
22
23Finds end-of-cycle sentences from GPS output logs.
24
25== dchroot-exec ==
26
27Very simple wrapper around the DSA version of dchroot
28on the Debian porter boxes. dchroot only accepts one command
29as argument, nothing else. This wrapper creates a temporary script
30which will be executed then.
31
32== do-build ==
33
34Very simple wrapper around scons clean, build, and check, saving
35output in a file named with "git describe".
36
37== easyinverse.pl ==
38
39Generate random pairirs of mutually inverse covariance matrices
40suitable for testing a matrix-inversion algorithm.
41
42== editcomment ==
43
44Give this a commit-ID specification.  It will edit the associated comment.
45Usual caveats apply; the edited one and all commits after will change IDs,
46and pushing them to a repo with the old commits will wreak havoc.
47Note also that this cavalierly overwrites refs/original.
48
49== fakeserver ==
50
51Analogue of gpsfake. Impersonates a gpsd, spewing specified data to
52clients connecting to localhost:2947
53
54== fakecompare ==
55
56Compare the results from running gpsfake on a logfile between this
57machine and a remote one.  Especially useful when remote and local
58have different word lengths.
59
60== flock* ==
61
62The files prefixed with flock are the scripts, data files, and
63documentation for the flock-test suite. Read flock-instructions for
64explanation.
65
66== gpsd-debian-regressions.sh ==
67
68Retrieves the latest build logs from Debian's buildds and extracts a
69list of failed regression tests, sorted by architecture.
70
71== identify_failing_build_options.py ==
72
73Run from the top level to try to identify any combinations of build
74options that don't compile.  To run cd to the root of the repo and
75run "devtools/identify_failing_build_options.py" it will generate
76failed_build_configs.txt for any that failed to compile.
77
78== logextract ==
79
80Extract pure NMEA from an emailed gpsd error log. The output can be fed
81to gpsfake.
82
83== regress-builder ==
84
85This script runs an exhaustive test on combinations of compilation options,
86looking for ones that break the build.
87
88== regressdiff ==
89
90Walk through a pair of text files looking for where they begin to differ.
91May be useful for comparing logs when regression tests break.
92
93== reindent ==
94
95Try to reindent the code in a uniform style.
96
97== sizes ==
98
99Test-build interesting versions of the daemon and display their sizes.
100
101== striplog ==
102
103Strip leading comment lines from NMEA sentence logs.  gpsfake can do
104this itself now, so this script has a lot of dust on it.
105
106== tablegen.py ==
107
108Generate most of the code required to support a message type from
109AIVDM message layout tables.  Also, redo their bit offsets to be
110conformant with field lengths.
111
112== test_json_validity.py ==
113
114Test a file full of lines containing GPSD-JSON reports to verify that each
115line is in fact well-formed JSON.
116