feat(remove.go): added removing packages
This commit is contained in:
parent
022eb8edba
commit
0431866e7c
2 changed files with 53 additions and 2 deletions
10
client.go
10
client.go
|
@ -16,7 +16,7 @@ func client(conn net.Conn, instance string) error {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
log.Println("Message Received:", message)
|
log.Println("Message Received:", message)
|
||||||
var objmap map[string]string
|
var objmap map[string]interface{}
|
||||||
err = json.Unmarshal([]byte(message), &objmap)
|
err = json.Unmarshal([]byte(message), &objmap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
|
@ -31,6 +31,12 @@ func client(conn net.Conn, instance string) error {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
case "remove":
|
||||||
|
err = removeMap(conn, instance, objmap)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
case "list":
|
case "list":
|
||||||
err = list(conn, instance)
|
err = list(conn, instance)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -38,7 +44,7 @@ func client(conn net.Conn, instance string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
err = errors.New("Unknown Command: " + val)
|
err = errors.New("Unknown Command: " + val.(string))
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
45
remove.go
Normal file
45
remove.go
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
func removeMap(conn net.Conn, instance string, objmap map[string]interface{}) error {
|
||||||
|
program, has := objmap["package"]
|
||||||
|
if !has {
|
||||||
|
return errors.New("a package is required")
|
||||||
|
}
|
||||||
|
|
||||||
|
keep_data, has := objmap["keep_data"]
|
||||||
|
if !has {
|
||||||
|
keep_data = false
|
||||||
|
}
|
||||||
|
|
||||||
|
return remove(conn, instance, program.(string), keep_data.(bool))
|
||||||
|
}
|
||||||
|
|
||||||
|
func remove(conn net.Conn, instance string, program string, keep_data bool) error {
|
||||||
|
package_path, err := filepath.Abs(filepath.Join(instance, "apps", program))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if exists, err := exists(package_path); !exists || err != nil {
|
||||||
|
return errors.New("package not found")
|
||||||
|
}
|
||||||
|
err = os.RemoveAll(package_path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var_path, err := filepath.Abs(filepath.Join(instance, "var", program))
|
||||||
|
if exists, err := exists(var_path); exists && err == nil && !keep_data {
|
||||||
|
err = os.RemoveAll(var_path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue