download and process dive computer data
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE.md
Makefile
README.md
common.c
compats.c
configure
daily.xml
day1.xml
day2.xml
dcmd.1
dcmd2csv.1
dcmd2grap.1
dcmd2json.1
dcmd2pdf.1
dcmd2ps.1
dcmdedit.1
dcmdedit.c
dcmdfind.1
dcmdls.1
dcmdterm.1
divecmd2csv.c
divecmd2divecmd.c
divecmd2grap.c
divecmd2json.c
divecmd2list.c
divecmd2pdf.in
divecmd2ps.in
divecmd2term.c
download.c
extern.h
index.css
index.xml
list.c
main.c
mandoc.css
multiday.xml
parser.c
parser.h
screenshot1.png
screenshot2.png
slider.js
ssrf2dcmd.1
ssrf2divecmd.c
temperature.xml
tests.c
versions.xml
xml.c

README.md

Synopsis

divecmd drives libdivecomputer to extract the contents of your dive computer in a safe, simple manner. It has several programs:

It compiles and runs on Linux, Mac OS X, and OpenBSD. For Mac OS X machines with homebrew, see BSD.lv's homebrew-repo.

There are also some supporting utilities:

  • dcmd2pdf(1), which manages a groff(1) toolchain into PDF;
  • dcmd2ps(1), which does the same but for PS (Mac OS X's groff(1) doesn't have PDF support); and

I forked libdivecomputer's dctool to write dcmd(1) --- originally to provide output like Subsurface's XML format, but later to significantly simplify the code, to add sandboxing via pledge(2), and to provide multiple front-ends.

If you have a feature in mind, I'm very happy to be encouraged to implement it with new dive computers, gear, or a place to dive...

Installation

To install divecmd, you need a recent version of libdivecomputer and libexpat (the latter is installed by default on most modern UNIX machines). You'll probably also want groff(1) and grap(1). Note: if you're running Mac OS X, your version of groff(1) doesn't support PDF output.

Just run the following:

./configure
make
sudo make install

Or if you're on OpenBSD, use doas instead of sudo. That's it!

You'll probably need to provide paths to the third-party libdivecomputer installation, however. To do so, just add a file configure.local that includes the LDFLAGS and CPPFLAGS set to the appropriate paths. It will be automatically picked up when you run configure. Alternatively, you can pas the LDFLAGS and CPPFLAGS variables to the configure script.

Note: this is a shell script, not a Makefile component, so no spaces around the equal sign.

License

The sources use the LGPL as printed in the LICENSE.md file. Why not the usual ISC license? Because this tool began as a fork of LGPL'd software.