mirror of
https://github.com/chenasraf/vstask.git
synced 2026-05-17 17:38:04 +00:00
45 lines
792 B
Go
45 lines
792 B
Go
package tasks
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"os"
|
|
"path"
|
|
|
|
"github.com/chenasraf/vstask/utils"
|
|
)
|
|
|
|
func GetTasks() ([]Task, error) {
|
|
projectRoot, err := utils.FindProjectRoot()
|
|
if err != nil {
|
|
return []Task{}, err
|
|
}
|
|
|
|
tasksPath := path.Join(projectRoot, utils.VSCODE_DIR, utils.TASKS_JSON)
|
|
|
|
if !utils.FileExists(tasksPath) {
|
|
return []Task{}, errors.New("tasks.json not found")
|
|
}
|
|
|
|
return LoadTasksFile(tasksPath)
|
|
}
|
|
|
|
func LoadTasksFile(tasksPath string) ([]Task, error) {
|
|
data, err := os.ReadFile(tasksPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
data = utils.ConvertJsoncToJson(data)
|
|
|
|
var file struct {
|
|
Version string `json:"version"`
|
|
Tasks []Task `json:"tasks"`
|
|
}
|
|
|
|
if err := json.Unmarshal(data, &file); err != nil {
|
|
return nil, err
|
|
}
|
|
return file.Tasks, nil
|
|
}
|