Metadata-Version: 2.0
Name: auacm
Version: 0.2
Summary: A command line interface to the Auburn ACM website
Home-page: https://github.com/BrandonLMorris/auacm-cli
Author: Brandon Morris
Author-email: brandon.morris95@gmail.com
License: MIT
Download-URL: https://github.com/BrandonLMorris/auacm-cli/tarball/0.2
Keywords: competitive,icpc,auacm,auburn
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: requests

# auacm-cli

A command line interface to the Auburn ACM web app (auacm.com)

## Installation

### From pip

Run `pip install auacm`

### Build from source

Clone this repository

`git clone https://github.com/brandonlmorris/auacm-cli`

Then in the top-level directroy, run

`python3 setup.py install`

This will install all the code and create the `auacm` shell command.


---

## Usage

`auacm-cli` installs itself as a shell script. In the terminal, run
`$ auacm`
to display the help.

All of the features of `auacm-cli` are written as subcommands to the main
`auacm` script. To log in, run

`$ auacm login`

You will be prompted for your name and password. Your session will be saved,
so you don't need to authenticate with every run of the script. Subcommands
`logout` and `whoami` exist to destroy the current session and print data
about the current user respectively.

### Problems

To view all the problems on the server, run

`$ auacm problem`

(Protip: pipe the result into `less` for your reading pleasure:
`$ auacm problem | less`)

To search for a problem, simply add the query after `problem` (multi-word
queries must be enclosed in quotes):

`$ auacm problem "cash cow"`

Adding a `-v` flag will increase the verbosity of the results, providing
the problem id, shortname, difficult, etc.

To get more detailed information on a specific problem, including the
description, input/output, and sample cases, run the subcommand `problem-info`
with the problem name or id.

`$ auacm problem-info parity`

**Note:** Searching by problem name is done by case-insensitive substrings. If
you search "cow" but another problem contains "cow" and comes first
alphabetically, that other problem will be used.

### Submission

You can also submit solutions to problems using `auacm`\*. To do so, simply
run the `submit` subcommand, followed by the problem name and the solution
file:

`$ auacm submit "cash cow" solution.py`

Note that if you're submitting a Python solution, you can use the `-p` flag
to indicate the version of Python. The default is Python 3.

`$ auacm submit parity parity.py -p 2`

After you submit, `auacm` will query your submission to obtain the results.

\*At the time of this writing, the production server (`auacm.com`) does not
support querying a submission's result. Until the server is updated, the
`submit` subcommand will result in an error, even though the solution file
properly submits. Complain to  @WilliamHester if you find this annoying.

---

## Bugs? Improvements? Funny jokes?

Send them to me at brandon dot morris95 at gmail dot com, or leave a comment
on this repo. Contributions are warmly welcomed.



