DODONACLI(14/05/2024)

NAME
dodonacli - a 3rd party Command Line Interface for Dodona

SYNOPSIS
dodona [display|info|next|post|select|status|sub|tutorial|up] [--help]

DESCRIPTION
This documents the usage of a Command Line Interface made for Dodona. DodonaCLI connects to Dodona to enable you to read, submit and get (minimal) feedback on exercises. You are able to switch courses, series and exercises, as long as you have acces to it on the official Dodona website.

SUBCOMMANDS

display
    Displays the courses/series/exercises you can select. When used while an exercise is selected, it will link you to the exercise page of the Dodona website. It can be used in combination with the flags [-force|--force] to force the web-pages content in your terminal. This formatting is often quite broken, so don't rely on this for tests.

info
    Gives some practical info about DodonaCLI itself. It has some subcommands: version [default], changelog, check-update, completion and github. They're pretty self-explanatory tbh.

next
    Selects the next course/series/exercise. This subcommand is equivalent to using 'up + select' and can be a nice time-saver. It is possible to go to the next unsolved exercise by appending the [-u|--unsolved] flag. It is also possible to reverse the order in which it cycles with the [-r|--reverse] flag. Both flags can be used together.

post
    Posts the file given as an extra argument to the currently selected exercise. This will return if the tests are passed, or information about the wrong tests. You can also use the [-c|--check] flag to check your solutionfile for syntax-errors before uploading. This is currently supported for Bash, Java, JavaScript and Python. There is also the [-l|--link] flag to post your solutionfile directly to the exercise specified in a link on the first line of the file. This link has to be written in a comment!

select
    Select a course/series/exercise of those available when using dodona display. Requires an extra argument [id|name] where name can be a distinct part of the cours/series/exercise. If the name is not distinct, it will select the first item it matches with (case-insensitive). It is not guarenteed that this matching happens in the same order as displayed, but often it is.

status
    Show the current selected course/series/exercise. If there is nothing selected for a category, it will be displayed as None.

sub Shows the most recent submissions. If an exercise is selected, then it will display the most recent 10 for that exercise, else it will display the most recent 30 submissions for the user. The code for a submssion can be loaded in with the subcommand 'load INT'.

tutorial
    Starts an interactive tutorial to learn how the CLI works.

up  Deselects the current course/series/exercise and goes to the layer above. Optional arguments are [all|top|1|2|3], which indicate how many "levels" you'll deselect.

--help
    Can be used with every option to get an help page for the command, if you use dodona or dodona --help you get the help page of the main command.

EXAMPLE USAGE

dodona display
    Shows the available courses

dodona select 1234
    Select the course with id '1234'

dodona display
    Shows the available series

dodona select pyt
    Matches the series with 'pyt' in it's name if it's the only one (case-insensitive)

dodona select 'Exercise 1'
    Selects the exercise with the name: "Exercise 1"

dodona post test.py
    Submits the document test.py to the currently selected exercise, and displays feedback.

dodona sub [view]
    Shows the last submissions.

dodona up 2
    Goes up 2 layers, in this case it would deselect the current exercise and series.

AUTHORS

DodonaCLI: Bram Windey (windey.bram@gmail.com) Man-page: Kiandro De Waegenaere & Bram windey

COPYRIGHT
MIT License Copyright (c) 2023 Bram Windey

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.