This commit is contained in:
simonkellet 2022-09-16 13:04:30 +01:00
parent cdfe8e6062
commit f85131b80a
5 changed files with 44 additions and 17 deletions

View File

@ -13,7 +13,7 @@ type Config struct {
Tasks []Task
}
// LoadConfig will take in the filename, load the JSON and return a pointer to Config
// LoadConfig will take in the filename, load the JSON and return a pointer to Config, a slice of Tasks
func LoadConfig(filename string) (*Config, error) {
file, err := os.ReadFile(filename)
if err != nil {

View File

@ -11,12 +11,13 @@ func main() {
flag.StringVar(&configFlag, "c", "", "path to tasks.json")
flag.Parse()
fmt.Println("Hello World")
fmt.Printf("Reading JSON file: %s\n", configFlag)
config, err := LoadConfig(configFlag)
if err != nil {
fmt.Fprintf(os.Stderr, "Cannot load config file: %s\n\t%s\n", configFlag, err)
}
fmt.Println(config)
//fmt.Println(config.Tasks[0].TaskName)
TaskRun(*config)
}

11
run.go Normal file
View File

@ -0,0 +1,11 @@
package main
import "fmt"
// Run will take the config file and for each task, run a go routine
func TaskRun(c Config) {
for i, v := range c.Tasks {
fmt.Printf("%d, %s", i, v)
}
}

View File

@ -2,19 +2,14 @@ package main
// TODO: Finish off doc. here
/*
Task:
Each 'task' will have a name, desc. time between reminder and a cmd
The 'CMD' will take shell script such as e.g.
$ checkupdates | wc -l
and store the output as a string to use in the desc.
If the 'CMD' is empty, we will just put a new line (maybe change this)
*/
type Task struct {
TaskName string
TaskDesc string
Interval int32
CMD string
Icon string
TaskName string `json:"taskname"`
TaskDesc string `json:"taskdesc"`
Interval int32 `json:"interval"`
CMD string `json:"cmd"`
Icon string `json:"icon"`
}
func (t *Task) PrintTask() {
}

View File

@ -0,0 +1,20 @@
{
"Tasks":
[
{
"taskname": "Example Task",
"taskdesc": "This is placeholder",
"interval": -1,
"cmd": " ",
"icon": " "
},
{
"taskname": "Second Example",
"taskdesc": "Still Place holder",
"interval": -1,
"cmd": " ",
"icon": " "
}
]
}