#!/usr/bin/env node

import {InfoCommand} from "./commands/InfoCommand";
import {InitCommand} from "./commands/InitCommand";
import {ListCommand} from "./commands/ListCommand";
import {JSONChallengeProvider} from "./challenges/JSONChallengeProvider";
import {TextConsoleFormatter} from "./console/TextConsoleFormatter";

const packageJson = require('../package.json');

const challengeProvider = new JSONChallengeProvider();
const consoleFormatter = new TextConsoleFormatter();

const program = require("commander");
program.version(packageJson.version);
program.description(packageJson.description);

[
    new InitCommand( challengeProvider ),
    new InfoCommand( challengeProvider, consoleFormatter ),
    new ListCommand( challengeProvider, consoleFormatter )
].forEach( c => c.register( program ) ) ;

program.parse(process.argv);