summaryrefslogtreecommitdiff
path: root/main.go
blob: 93defd373851c19a3a1c215d74d963b0558cbf1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package main

import (
	"flag"
	"fmt"
	"net/http"
	"os"
)

var base_link string
var base_aplus_link string
var external_tools_code int
var token string
var client http.Client

func usage() {
	fmt.Println("Usage: aplus [--code attendance_code --course course_code] [--list] [--listfav] [--help]")
}

func main() {
	initialize()

	var code string
	var course int
	var listall bool
	var listfav bool
	var help bool

	flag.StringVar(&code, "code", "", "5 character attendance code")
	flag.StringVar(&code, "c", "", "5 character attendance code")
	flag.IntVar(&course, "course", -1, "canvas course code")
	flag.IntVar(&course, "C", -1, "canvas course code")
	flag.BoolVar(&listall, "list", false, "list all canvas courses")
	flag.BoolVar(&listall, "L", false, "list all canvas courses")
	flag.BoolVar(&listfav, "listfav", false, "list favorited canvas courses")
	flag.BoolVar(&listfav, "F", false, "list favorited canvas courses")
	flag.BoolVar(&help, "help", false, "view usage message")
	flag.BoolVar(&help, "h", false, "view usage message")

	flag.Parse()

	if (code == "" && course == -1 && !listall && !listfav) {
		usage()
		os.Exit(1)
	}

	if (listall) {
		list_all_courses()
		os.Exit(0)
	}

	if (listfav) {
		list_favorite_courses()
		os.Exit(0)
	}

	if (help) {
		usage()
		os.Exit(0)
	}

	if (len(code) != 5) {
		fmt.Println("Attendance code must be 5 characters long")
		os.Exit(1)
	}

	if code != "" && course != -1 {
		fmt.Printf("%d %s\n", course, code)
		submit_code(course, code)
	} else {
		usage()
		os.Exit(1)
	}
}