Giter Site home page Giter Site logo

cli's Introduction

Exercism Command-line Interface

Build Status Supporting 24 Pull Requests

The CLI provides a way to do the problems on exercism.io.

Important: If you're looking for instructions on how to install the CLI. Please read Installing the CLI

This CLI ships as a binary with no additional runtime requirements. This means that if you're doing the Haskell problems on exercism you don't need a working Python or Ruby environment simply to fetch and submit exercises.

Dependencies

Go version 1.6 or higher

Installing Go

Follow the directions on http://golang.org/doc/install

Development

  1. fork this repo
  2. go get github.com/exercism/cli/exercism
  3. cd $GOPATH/src/github.com/exercism/cli
  4. git remote set-url origin https://github.com/<your-github-username>/cli
  5. go get -t ./...
  6. Make the change.
  7. Submit a pull request.

Please provide tests for the changes where possible.

To run the tests locally, use go test ./...

At the moment the CLI commands are not tested, so if you're adding a new command don't worry too hard about tests.

Testing against exercism.io

If you want to test a change by using your own fork to try exercism commands, such as exercism fetch or exercism submit, against the exercism.io site, it is advisable that you set up and run a local development environment, and configure the CLI to submit to your local machine, which would let you easily delete and recreate submissions, without fear of breaking the exercism.io site.

Building

To build the binary for your platform run

go install github.com/exercism/cli/exercism

or

go build -o out/exercism exercism/main.go

The resulting binary can be found in out/exercism (Linux, Mac OS X) or out/exercism.exe (Windows).

In order to cross-compile for all platforms, run bin/build-all. The binaries will be built into the release directory.

Domain Concepts

  • Language is the name of a programming language. E.g. C++ or Objective-C or JavaScript.
  • Track ID is a normalized, url-safe identifier for a language track. E.g. cpp or objective-c or javascript.
  • Problem is an exercism exercise.
  • Problem Slug is a normalized, url-safe identifier for a problem.
  • Iteration is a solution that a user has written for a particular problem in a particular language track. A user may have several iterations for the same problem.

cli's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.