Nekmo/amazon-dash

View on GitHub
docs/troubleshooting.rst

Summary

Maintainability
Test Coverage
Troubleshooting
===============

Requirements and installation
-----------------------------
All dependencies are commonly used on a Linux system, but some may not be installed on your system. The dependencies
are:

* Python 2.7 or 3.5+.
* Python-pip (pip).
* Tcpdump.
* Sudo

Amazon-dash v2.0.0 will only be compatible with Python 3.6+. This version is currently in development.


Why root is required
--------------------
This program needs permission to open raw sockets on your system. You can set this permission using setcap, but you
must be very careful about who can run the program. Raw sockets permission could allow scaling permissions on the
system::

    setcap cap_net_raw=eip ./scripts/amazon-dash
    setcap cap_net_raw=eip /usr/bin/pythonX.X
    setcap cap_net_raw=eip /usr/bin/tcpdump

http://stackoverflow.com/questions/36215201/python-scapy-sniff-without-root


Amazon Dash Exceptions
----------------------
These are the types of errors that are contemplated in Amazon Dash. If Amazon Dash returns one of these errors, please
do not open an issue without reading the error message. The following is an example of a configuration error::

    $ amazon-dash run
    Welcome to Amazon-dash v0.4.1-1 using Python 3.6.3
    Listening for events. Amazon-dash will execute the events associated with the registered buttons.
    [Error] Amazon Dash Exception (InvalidConfig):
    The configuration file is invalid (/current/path/amazon-dash.yml). Check the file and read the documentation.
    while scanning a simple key
      in "amazon-dash.yml", line 42, column 5
    could not find expected ':'
      in "amazon-dash.yml", line 43, column 1

The line number with the typo appears in the error. The error type is in parentheses (in the ex. *InvalidConfig*). These
are the types of errors:


.. automodule:: amazon_dash.exceptions
    :members:


Cli errors
----------
The command line will return an error if unknown or misused options are used. For example::

    $ amazon-dash foobarspam
    Welcome to Amazon-dash v0.4.1-1 using Python 3.6.3
    Usage: amazon-dash foobarspam [OPTIONS]

    Error: Got unexpected extra argument (foobarspam)

Obviously *foobarspam* is not a known command. Please use ``--help`` to see all the commands.


The problem is the same with the options. For example::

    $ amazon-dash --foo
    Welcome to Amazon-dash v0.4.1-1 using Python 3.6.3
    Error: no such option: --foo

The command line exceptions (like abort) on Click return an ``1`` error code. Errors due to misuse of the options
return an error code ``2``.



Installation errors
-------------------
If you have problems with the installation, check that you meet all the requirements of section
`Requirements and installation`_. Check that you are running the commands **as sudo**. If you still have problems
open a ticket and do not forget to paste all the error messages during the installation.

To verify that you have installed Amazon Dash and you are using the latest version::

    $ amazon-dash --version
    You are running Amazon-dash v0.4.1-1 using Python 3.6.3.
    There is a new version available: 0.4.2. Upgrade it using: sudo pip install -U amazon-dash
    Installation path: /home/nekmo/Workspace/amazon-dash/amazon_dash
    Current path: /home/nekmo/Workspace/amazon-dash