Browse Source

Fixed something

Toby Chui 1 year ago
parent
commit
d70a561ed6
2 changed files with 86 additions and 81 deletions
  1. 6 6
      mod/agi/agi.go
  2. 80 75
      mod/agi/systemFunc.go

+ 6 - 6
mod/agi/agi.go

@@ -68,9 +68,9 @@ type AgiSysInfo struct {
 }
 
 type Gateway struct {
-	ReservedTables   []string
-	NightlyScripts   []string
-	AllowAccessPkgs  map[string][]AgiPackage
+	ReservedTables []string
+	NightlyScripts []string
+	//AllowAccessPkgs  map[string][]AgiPackage
 	LoadedAGILibrary map[string]AgiLibInjectionIntergface
 	Option           *AgiSysInfo
 }
@@ -78,9 +78,9 @@ type Gateway struct {
 func NewGateway(option AgiSysInfo) (*Gateway, error) {
 	//Handle startup registration of ajgi modules
 	gatewayObject := Gateway{
-		ReservedTables:   option.ReservedTables,
-		NightlyScripts:   []string{},
-		AllowAccessPkgs:  map[string][]AgiPackage{},
+		ReservedTables: option.ReservedTables,
+		NightlyScripts: []string{},
+		//AllowAccessPkgs:  map[string][]AgiPackage{},
 		LoadedAGILibrary: map[string]AgiLibInjectionIntergface{},
 		Option:           &option,
 	}

+ 80 - 75
mod/agi/systemFunc.go

@@ -1,14 +1,11 @@
 package agi
 
 import (
-	"encoding/csv"
 	"encoding/json"
 	"errors"
 	"log"
 	"os"
-	"os/exec"
 	"path/filepath"
-	"strings"
 	"time"
 
 	"github.com/robertkrimen/otto"
@@ -253,98 +250,106 @@ func (g *Gateway) injectStandardLibs(vm *otto.Otto, scriptFile string, scriptSco
 	if scriptFile != "" && scriptScope != "" {
 		//Package request --> Install linux package if not exists
 		vm.Set("requirepkg", func(call otto.FunctionCall) otto.Value {
-			packageName, err := call.Argument(0).ToString()
-			if err != nil {
-				g.RaiseError(err)
-				return otto.FalseValue()
-			}
-			requireComply, err := call.Argument(1).ToBoolean()
-			if err != nil {
-				g.RaiseError(err)
-				return otto.FalseValue()
-			}
+			g.RaiseError(errors.New("requirepkg has been deprecated in agi v3.0"))
+			return otto.FalseValue()
+			/*
+				packageName, err := call.Argument(0).ToString()
+				if err != nil {
+					g.RaiseError(err)
+					return otto.FalseValue()
+				}
+				requireComply, err := call.Argument(1).ToBoolean()
+				if err != nil {
+					g.RaiseError(err)
+					return otto.FalseValue()
+				}
 
-			scriptRoot := static.GetScriptRoot(scriptFile, scriptScope)
+				scriptRoot := static.GetScriptRoot(scriptFile, scriptScope)
 
-			//Check if this module already get registered.
-			alreadyRegistered := false
-			for _, pkgRequest := range g.AllowAccessPkgs[strings.ToLower(packageName)] {
-				if pkgRequest.InitRoot == scriptRoot {
-					alreadyRegistered = true
-					break
+				//Check if this module already get registered.
+				alreadyRegistered := false
+				for _, pkgRequest := range g.AllowAccessPkgs[strings.ToLower(packageName)] {
+					if pkgRequest.InitRoot == scriptRoot {
+						alreadyRegistered = true
+						break
+					}
 				}
-			}
 
-			if !alreadyRegistered {
-				//Register this packge to this script and allow the module to call this package
-				g.AllowAccessPkgs[strings.ToLower(packageName)] = append(g.AllowAccessPkgs[strings.ToLower(packageName)], AgiPackage{
-					InitRoot: scriptRoot,
-				})
-			}
+				if !alreadyRegistered {
+					//Register this packge to this script and allow the module to call this package
+					g.AllowAccessPkgs[strings.ToLower(packageName)] = append(g.AllowAccessPkgs[strings.ToLower(packageName)], AgiPackage{
+						InitRoot: scriptRoot,
+					})
+				}
 
-			//Try to install the package via apt
-			err = g.Option.PackageManager.InstallIfNotExists(packageName, requireComply)
-			if err != nil {
-				g.RaiseError(err)
-				return otto.FalseValue()
-			}
+				//Try to install the package via apt
+				err = g.Option.PackageManager.InstallIfNotExists(packageName, requireComply)
+				if err != nil {
+					g.RaiseError(err)
+					return otto.FalseValue()
+				}
 
-			return otto.TrueValue()
+				return otto.TrueValue()
+			*/
 		})
 
 		//Exec required pkg with permission control
 		vm.Set("execpkg", func(call otto.FunctionCall) otto.Value {
-			//Check if the pkg is already registered
-			scriptRoot := static.GetScriptRoot(scriptFile, scriptScope)
-			packageName, err := call.Argument(0).ToString()
-			if err != nil {
-				g.RaiseError(err)
-				return otto.FalseValue()
-			}
+			g.RaiseError(errors.New("execpkg has been deprecated in agi v3.0"))
+			return otto.FalseValue()
+			/*
+				//Check if the pkg is already registered
+				scriptRoot := static.GetScriptRoot(scriptFile, scriptScope)
+				packageName, err := call.Argument(0).ToString()
+				if err != nil {
+					g.RaiseError(err)
+					return otto.FalseValue()
+				}
 
-			if val, ok := g.AllowAccessPkgs[packageName]; ok {
-				//Package already registered by at least one module. Check if this script root registered
-				thisModuleRegistered := false
-				for _, registeredPkgInterface := range val {
-					if registeredPkgInterface.InitRoot == scriptRoot {
-						//This package registered this command. Allow access
-						thisModuleRegistered = true
+				if val, ok := g.AllowAccessPkgs[packageName]; ok {
+					//Package already registered by at least one module. Check if this script root registered
+					thisModuleRegistered := false
+					for _, registeredPkgInterface := range val {
+						if registeredPkgInterface.InitRoot == scriptRoot {
+							//This package registered this command. Allow access
+							thisModuleRegistered = true
+						}
 					}
-				}
 
-				if !thisModuleRegistered {
+					if !thisModuleRegistered {
+						g.RaiseError(errors.New("Package request not registered: " + packageName))
+						return otto.FalseValue()
+					}
+
+				} else {
 					g.RaiseError(errors.New("Package request not registered: " + packageName))
 					return otto.FalseValue()
 				}
 
-			} else {
-				g.RaiseError(errors.New("Package request not registered: " + packageName))
-				return otto.FalseValue()
-			}
-
-			//Ok. Allow paramter to be loaded
-			execParamters, _ := call.Argument(1).ToString()
+				//Ok. Allow paramter to be loaded
+				execParamters, _ := call.Argument(1).ToString()
 
-			// Split input paramters into []string
-			r := csv.NewReader(strings.NewReader(execParamters))
-			r.Comma = ' ' // space
-			fields, err := r.Read()
-			if err != nil {
-				g.RaiseError(err)
-				return otto.FalseValue()
-			}
+				// Split input paramters into []string
+				r := csv.NewReader(strings.NewReader(execParamters))
+				r.Comma = ' ' // space
+				fields, err := r.Read()
+				if err != nil {
+					g.RaiseError(err)
+					return otto.FalseValue()
+				}
 
-			//Run os.Exec on the given commands
-			cmd := exec.Command(packageName, fields...)
-			out, err := cmd.CombinedOutput()
-			if err != nil {
-				log.Println(string(out))
-				g.RaiseError(err)
-				return otto.FalseValue()
-			}
+				//Run os.Exec on the given commands
+				cmd := exec.Command(packageName, fields...)
+				out, err := cmd.CombinedOutput()
+				if err != nil {
+					log.Println(string(out))
+					g.RaiseError(err)
+					return otto.FalseValue()
+				}
 
-			reply, _ := vm.ToValue(string(out))
-			return reply
+				reply, _ := vm.ToValue(string(out))
+				return reply
+			*/
 		})
 
 		//Include another js in runtime