simonkellet 2 years ago
parent cdfe8e6062
commit f85131b80a
  1. 2
      config.go
  2. 5
      main.go
  3. 11
      run.go
  4. 23
      tasks.go
  5. 20
      tasks.json

@ -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 {

@ -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)
}

@ -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)
}
}

@ -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() {
}

@ -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": " "
}
]
}
Loading…
Cancel
Save