mdt: Major functionality changes

The big things that occured in this change was the addition of the install,
push, pull, and exec commands. Past this change, we're actually functionally
equivalent to the board.sh utility in the Mendel tree.

Things that changed in order of biggest to smallest:

  - Added the install, push, and pull commands. They're brittle at the moment --
    refinements to come.
  - Refactored most of the command classes to use NetworkCommand which handles
    discovery of connected devices based upon user preferences and what is
    available.
  - Migrated most of the SSH code into its own class called SshClient.
  - Made ConnectionClosedErrors actually store exit codes so we can return those
    to the host-side shell.
  - Made Console track exit codes from the given Channels.
  - Made Console work with non-PTY shells so we can suck down the output to the
    terminal
  - Added the exec command to run a command without a shell.
  - Fixed a command sanitization check in config

Apologies for the gigantic diff. O.o

Change-Id: I08a2ce18e777b9c047503ad3225083eb0ceab053
8 files changed
tree: 2ba7f22cfaf677d9aae4eece4eaf62ab1797975f
  1. debian/
  2. man/
  3. mdt/
  4. .gitignore
  5. LICENSE.txt
  6. MANIFEST.in
  7. README.md
  8. setup.py
README.md

MDT - The Mendel Development Tool

What is this?

MDT is a simple tool to aid in working with single board computers that the Mendel Linux distribution runs on. It consists of a whole bunch of pre-existing open source tooling, coupled with some simple wrappers written in python to ease their use.

It also provides an easy way to interact with these boards without having to fight with serial consoles, IP addresses, and other fiddly bits, reducing barrier to entry when working with these boards.

With minimal effort, MDT should also be portable to existing systems such as Debian and Ubuntu, if needed. This, however, is out of the scope of this project.