mirror of
https://github.com/safing/portmaster
synced 2025-04-20 02:49:10 +00:00
* Move portbase into monorepo * Add new simple module mgr * [WIP] Switch to new simple module mgr * Add StateMgr and more worker variants * [WIP] Switch more modules * [WIP] Switch more modules * [WIP] swtich more modules * [WIP] switch all SPN modules * [WIP] switch all service modules * [WIP] Convert all workers to the new module system * [WIP] add new task system to module manager * [WIP] Add second take for scheduling workers * [WIP] Add FIXME for bugs in new scheduler * [WIP] Add minor improvements to scheduler * [WIP] Add new worker scheduler * [WIP] Fix more bug related to new module system * [WIP] Fix start handing of the new module system * [WIP] Improve startup process * [WIP] Fix minor issues * [WIP] Fix missing subsystem in settings * [WIP] Initialize managers in constructor * [WIP] Move module event initialization to constrictors * [WIP] Fix setting for enabling and disabling the SPN module * [WIP] Move API registeration into module construction * [WIP] Update states mgr for all modules * [WIP] Add CmdLine operation support * Add state helper methods to module group and instance * Add notification and module status handling to status package * Fix starting issues * Remove pilot widget and update security lock to new status data * Remove debug logs * Improve http server shutdown * Add workaround for cleanly shutting down firewall+netquery * Improve logging * Add syncing states with notifications for new module system * Improve starting, stopping, shutdown; resolve FIXMEs/TODOs * [WIP] Fix most unit tests * Review new module system and fix minor issues * Push shutdown and restart events again via API * Set sleep mode via interface * Update example/template module * [WIP] Fix spn/cabin unit test * Remove deprecated UI elements * Make log output more similar for the logging transition phase * Switch spn hub and observer cmds to new module system * Fix log sources * Make worker mgr less error prone * Fix tests and minor issues * Fix observation hub * Improve shutdown and restart handling * Split up big connection.go source file * Move varint and dsd packages to structures repo * Improve expansion test * Fix linter warnings * Fix interception module on windows * Fix linter errors --------- Co-authored-by: Vladimir Stoilov <vladimir@safing.io>
76 lines
2.5 KiB
Go
76 lines
2.5 KiB
Go
package profile
|
|
|
|
// DEACTIVATED
|
|
|
|
// import (
|
|
// "fmt"
|
|
// "os"
|
|
// "path/filepath"
|
|
// "regexp"
|
|
// "strings"
|
|
//
|
|
// "github.com/safing/portmaster/base/log"
|
|
// )
|
|
//
|
|
// type Framework struct {
|
|
// // go hirarchy up
|
|
// FindParent uint8 `json:",omitempty bson:",omitempty"`
|
|
// // get path from parent, amount of levels to go up the tree (1 means parent, 2 means parent of parents, and so on)
|
|
// MergeWithParent bool `json:",omitempty bson:",omitempty"`
|
|
// // instead of getting the path of the parent, merge with it by presenting connections as if they were from that parent
|
|
//
|
|
// // go hirarchy down
|
|
// Find string `json:",omitempty bson:",omitempty"`
|
|
// // Regular expression for finding path elements
|
|
// Build string `json:",omitempty bson:",omitempty"`
|
|
// // Path definitions for building path
|
|
// Virtual bool `json:",omitempty bson:",omitempty"`
|
|
// // Treat resulting path as virtual, do not check if valid
|
|
// }
|
|
//
|
|
// func (f *Framework) GetNewPath(command string, cwd string) (string, error) {
|
|
// // "/usr/bin/python script"
|
|
// // to
|
|
// // "/path/to/script"
|
|
// regex, err := regexp.Compile(f.Find)
|
|
// if err != nil {
|
|
// return "", fmt.Errorf("profiles(framework): failed to compile framework regex: %s", err)
|
|
// }
|
|
// matched := regex.FindAllStringSubmatch(command, -1)
|
|
// if len(matched) == 0 || len(matched[0]) < 2 {
|
|
// return "", fmt.Errorf("profiles(framework): regex \"%s\" for constructing path did not match command \"%s\"", f.Find, command)
|
|
// }
|
|
//
|
|
// var lastError error
|
|
// var buildPath string
|
|
// for _, buildPath = range strings.Split(f.Build, "|") {
|
|
//
|
|
// buildPath = strings.Replace(buildPath, "{CWD}", cwd, -1)
|
|
// for i := 1; i < len(matched[0]); i++ {
|
|
// buildPath = strings.Replace(buildPath, fmt.Sprintf("{%d}", i), matched[0][i], -1)
|
|
// }
|
|
//
|
|
// buildPath = filepath.Clean(buildPath)
|
|
//
|
|
// if !f.Virtual {
|
|
// if !strings.HasPrefix(buildPath, "~/") && !filepath.IsAbs(buildPath) {
|
|
// lastError = fmt.Errorf("constructed path \"%s\" from framework is not absolute", buildPath)
|
|
// continue
|
|
// }
|
|
// if _, err := os.Stat(buildPath); errors.Is(err, fs.ErrNotExist) {
|
|
// lastError = fmt.Errorf("constructed path \"%s\" does not exist", buildPath)
|
|
// continue
|
|
// }
|
|
// }
|
|
//
|
|
// lastError = nil
|
|
// break
|
|
//
|
|
// }
|
|
//
|
|
// if lastError != nil {
|
|
// return "", fmt.Errorf("profiles(framework): failed to construct valid path, last error: %s", lastError)
|
|
// }
|
|
// log.Tracef("profiles(framework): transformed \"%s\" (%s) to \"%s\"", command, cwd, buildPath)
|
|
// return buildPath, nil
|
|
// }
|