Crates.io | trackme |
lib.rs | trackme |
version | 0.1.0 |
source | src |
created_at | 2023-10-22 11:48:24.710194 |
updated_at | 2023-10-22 11:48:24.710194 |
description | upload activity logs to analysis platforms |
homepage | |
repository | https://codeberg.org/robink/trackme |
max_upload_size | |
id | 1010525 |
size | 105,524 |
Command-line tool for uploading activity logs to platforms like Intervals.icu and Strava.
$ trackme upload --name "My Activity" activity.fit
[intervals.icu] upload finished (ID i12345)
[strava ] upload finished (ID 12345)
To install trackme
, you need Rust 1.70.0 or later. Download the source code
for the latest release and compile it with:
$ git clone https://codeberg.org/robink/trackme.git
$ cd trackme
$ git checkout stable
$ cargo build --release
It is recommended to verify the OpenPGP signature of the release before compiling and installing it:
$ git verify-commit stable
All releases should be signed with the key EC7E F0F9 B681 4C24 6236 3842 B755 6972 702A FD45
.
Alternatively, you can install trackme
directly from crates.io:
$ cargo install --locked trackme
The main command is upload
. It uploads an activity file – typically in the
FIT, GPX or TCX format – to one or more tracking platforms. Per default, it
uploads to all supported platforms. You can select the platforms with the
--platforms
option. Use the --name
option to override the activity name
that is generated by the platform.
$ trackme upload activity.fit
[intervals.icu] upload finished (ID i12345)
[strava ] upload finished (ID 12345)
$ trackme upload --name "My Activity" activity.fit
[intervals.icu] upload finished (ID i12345)
[strava ] upload finished (ID 12345)
$ trackme upload --platforms strava --name "My Strava Activity" activity.fit
[strava] upload finished (ID 12345)
trackme
tries to load its configuration from one of the following files:
${XDG_CONFIG_HOME}/trackme/config.toml
(default:
~/.config/trackme/config.toml
)${dir}/trackme/config.toml
for dir
in XDG_CONFIG_DIRS
(default:
/etc/xdg/trackme/config.tml
)Alternatively, the path to the config file can be set using the --config
option.
config.toml
is an example configuration file that describes
the available settings. All settings can also be passed as command-line
arguments. Use the --help
option to list the available arguments.
The following sections describe how to set up the supported platforms so that you can upload your activities. It is recommended to use the configuration file for the required settings, but you can also use CLI arguments instead.
To upload to Intervals.icu, you need the athlete ID and API key from Settings → Developer Settings.
CLI:
$ trackme --intervals-icu-athlete-id i12345 --intervals-icu-api-key secret-string ...
Configuration:
[platform.intervals_icu]
athlete_id = "i12345"
api_key = "secret-string"
To upload to Strava, you first need to create an API application in
Settings → My API Application, as described in the Strava Developer
documentation. Then configure trackme
with the client ID and
secret for your API application.
CLI:
$ trackme --strava-client-id 12345 --strava-client-secret secret-string ...
Configuration:
[platform.strava]
client_id = 12345
client_secret = "secret-string"
Before you can upload activities to Strava, you need to authorize the
application for your account using the strava login
command. It will print a
URL that you have to open in a web browser (or use the --open
option to open
it automatically). Login to your Strava account and authorize the application.
You will be redirected to a localhost
URL. Copy that URL and paste it to the
strava login
command.
$ trackme strava login --open
This generates an access token for accessing the Strava API and a refresh token
to renew the access token if it expires. To keep track of these tokens,
trackme
will generate the file ${XDG_STATE_HOME}/trackme/strava.toml
(default: ~/.local/state/trackme/strava.toml
).
For bug reports, feature requests and other messages, please open an issue for the Codeberg.org project.
This project is licensed under the GNU General Public License, Version
3.0 or later. The documentation and examples contained in this
repository are licensed under the Creative Commons Zero license. For
more information, see the license header in each file. You can find a copy of
the license texts in the LICENSES
directory.
trackme
complies with version 3.0 of the REUSE specification.