feat(list.go): added list packages
This commit is contained in:
parent
ff2ade5e84
commit
0842cc68ad
2 changed files with 68 additions and 0 deletions
|
@ -31,6 +31,12 @@ func client(conn net.Conn, instance string) error {
|
|||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
case "list":
|
||||
err = list(conn, instance)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
default:
|
||||
err = errors.New("Unknown Command: " + val)
|
||||
log.Println(err)
|
||||
|
|
62
list.go
Normal file
62
list.go
Normal file
|
@ -0,0 +1,62 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
func list(conn net.Conn, instance string) error {
|
||||
|
||||
package_list := make(map[string]string)
|
||||
|
||||
packages_path, err := filepath.Abs(filepath.Join(instance, "apps"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
packages, err := os.ReadDir(packages_path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, program := range packages {
|
||||
if program.Type().IsDir() {
|
||||
info_path, err := filepath.Abs(filepath.Join(packages_path, program.Name(), "boundaries.json"))
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
continue
|
||||
}
|
||||
if exists, err := exists(info_path); exists && err == nil {
|
||||
infofile_content, err := os.ReadFile(info_path)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
continue
|
||||
}
|
||||
var info map[string]interface{}
|
||||
err = json.Unmarshal(infofile_content, &info)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
version, has := info["version"]
|
||||
if !has {
|
||||
version = "1.0"
|
||||
}
|
||||
package_list[program.Name()] = version.(string)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data, err := json.Marshal(package_list)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
conn.Write(data)
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Add table
Reference in a new issue