# motis-m - Command Line Interface to MOTIS Routing Services

**motis-m** is a commandline client and Perl module for the arrival/departure
component of MOTIS routing interfaces. It can show the arrivals/departures at a
specific public transit stop, give details on individual trips, and look up
stops by name or geo coordinates. It supports text and JSON output.

This README documents installation of motis-m and the associated
Travel::Status::MOTIS Perl module.  See the [Travel::Status::MOTIS
homepage](https://finalrewind.org/projects/Travel-Status-MOTIS) and [motis-m
manual](https://man.finalrewind.org/1/motis-m) for a feature overview and usage
instructions.

## Installation

You have five installation options:

* Installing the latest release from CPAN
* Installation from source

__motis-m__ will be available in your PATH after installation.  You can run
`motis-m --version` to verify this. Documentation is available via `man
motis-m`.

### Installation from CPAN

Travel::Status::MOTIS releases are published on the Comprehensive Perl Archive
Network (CPAN) and can be installed using standard Perl module tools such as
`cpanminus`.

Before proceeding, ensure that you have standard build tools (i.e. make,
pkg-config and a C compiler) installed. You will also need the following
libraries with development headers:

* libssl
* zlib

Now, use a tool of your choice to install the module. Minimum working example:

```
cpanm Travel::Status::MOTIS
```

If you run this as root, it will install script and module to `/usr/local` by
default. There is no well-defined uninstallation procedure.

### Installation from Source

In this variant, you must ensure availability of dependencies by yourself.
You may use carton or cpanminus with the provided `Build.PL`, Module::Build's
installdeps command, or rely on the Perl modules packaged by your distribution.
On Debian 10+, all dependencies are available from the package repository.

To check whether dependencies are satisfied, run:

```
perl Build.PL
```

If it complains about "... is not installed" or "ERRORS/WARNINGS FOUND IN
PREREQUISITES", it is missing dependencies.

Once all dependencies are satisfied, use Module::Build to build, test and
install the module. Testing is optional -- you may skip the "Build test"
step if you like.

If you downloaded a release tarball, proceed as follows:

```
./Build
./Build test
sudo ./Build install
```

If you are using the Git repository, use the following commands:

```
git submodule update --init
./Build
./Build manifest
./Build test
sudo ./Build install
```

Note that system-wide installation does not have a well-defined uninstallation
procedure.

If you do not have superuser rights or do not want to perform a system-wide
installation, you may leave out `Build install` and use **motis-m** from the
current working directory.

With carton:

```
carton exec motis-m --version
```

Otherwise (also works with carton):

```
perl -Ilocal/lib/perl5 -Ilib bin/motis-m --version
```