James Browning e18fdb9fc5 Add tool to find nastiness in files. 2 anni fa
..
README a0a2d06bd7 Various: Minor AsciiDoc markup tweaks. 3 anni fa
ais.py 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
aivdmtable 94c5289d36 Typo fix on shebang. 3 anni fa
client-projects 30d0a65390 Updating some more http -> https 5 anni fa
cycle_analyzer 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
dchroot-exec 899c543796 Remove bash-isms that snuck in. 4 anni fa
do-build 8d706a067f Add do-build script to run tests. 10 anni fa
easyinverse.pl bc5c1b4119 Fix spelling 4 anni fa
editcomment 34a928102e Pacify recent versions of git. 4 anni fa
fakecompare 71635b9d81 devtools/fakecompare: Fix copyright 4 anni fa
filescan e18fdb9fc5 Add tool to find nastiness in files. 2 anni fa
get_geoid_table.py 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
get_mag_var_table.py 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
gpsd-debian-regressions.sh 684e6e9223 devtools/gpsd-debian-regressions.sh: Codacy cleanup. 4 anni fa
gpsdfake 0e37f9af5f devtools/gpsdfake: Fix copyright, remove tabs. 4 anni fa
identify_failing_build_options.py 95652023fa build.adoc: Fix reference to nmea0183=yes. That always built. 3 anni fa
logextract 54e35b11b2 devtools/logextract: Fix copyright, remove tabs. 4 anni fa
regress-builder 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
regressdiff 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
reindent a5e56a4354 The failed attempt at reindenting should be kept for the record. 13 anni fa
sizes 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
striplog 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
tablegen.py 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
test_json_validity.py 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa
uninstall_cleanup.py 410b7e9e37 Ubuntu has abolished /usr/bin/python, change shebangs to python3. 3 anni fa

README

= Developer Tools
:date: 13 January 2021
:description: Developer tools for gpsd developers
:keywords: GPSD, GPS, developer
:robots: index,follow
:title: Developer Tools
:toc:

This is a list of developer tools included in the source repository
but not necessarily shipped in the tarball or binary distributions If you're
viewing it with Emacs, you can try doing Ctl-C Ctl-t browse through
the outline headers. Ctl-C Ctl-a will unfold them again.

== ais.py

AIS packet decoder in Python. Useful as a check on the C code.
Also, if you have AISHub privileges (see ),
a command like

nc data.aishub.net 4006 | devtools/ais.py -c -v -t RANGE >AIS.LOG 2>&1"

is a handy way to capture filtered AIS samples; RANGE can be a comma-separated
list of AIS types.

== aidvmtable

Generate an asciidoc table of the six-bit encoding used in AIVDM packets.

== cycle_analyzer

Finds end-of-cycle sentences from GPS output logs.

== dchroot-exec

Very simple wrapper around the DSA version of dchroot
on the Debian porter boxes. dchroot only accepts one command
as argument, nothing else. This wrapper creates a temporary script
which will be executed then.

== do-build

Very simple wrapper around scons clean, build, and check, saving
output in a file named with "git describe".

== easyinverse.pl

Generate random pairirs of mutually inverse covariance matrices
suitable for testing a matrix-inversion algorithm.

== editcomment

Give this a commit-ID specification. It will edit the associated comment.
Usual caveats apply; the edited one and all commits after will change IDs,
and pushing them to a repo with the old commits will wreak havoc.
Note also that this cavalierly overwrites refs/original.

== fakeserver

Analogue of gpsfake. Impersonates a gpsd, spewing specified data to
clients connecting to localhost:2947

== fakecompare

Compare the results from running gpsfake on a logfile between this
machine and a remote one. Especially useful when remote and local
have different word lengths.

== gpsd-debian-regressions.sh

Retrieves the latest build logs from Debian's buildds and extracts a
list of failed regression tests, sorted by architecture.

== identify_failing_build_options.py

Run from the top level to try to identify any combinations of build
options that don't compile. To run cd to the root of the repo and
run "devtools/identify_failing_build_options.py" it will generate
failed_build_configs.txt for any that failed to compile.

== logextract

Extract pure NMEA from an emailed gpsd error log. The output can be fed
to gpsfake.

== regress-builder

This script runs an exhaustive test on combinations of compilation options,
looking for ones that break the build.

== regressdiff

Walk through a pair of text files looking for where they begin to differ.
May be useful for comparing logs when regression tests break.

== reindent

Try to reindent the code in a uniform style.

== sizes

Test-build interesting versions of the daemon and display their sizes.

== striplog

Strip leading comment lines from NMEA sentence logs. gpsfake can do
this itself now, so this script has a lot of dust on it.

== tablegen.py

Generate most of the code required to support a message type from
AIVDM message layout tables. Also, redo their bit offsets to be
conformant with field lengths.

== test_json_validity.py

Test a file full of lines containing GPSD-JSON reports to verify that each
line is in fact well-formed JSON.