You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
37 lines
1.3 KiB
package configure
|
|
|
|
// Copyright (c) 2025 Robert Strutts <bobs@NewToFaith.com>
|
|
// License: MIT
|
|
// GIT: https://git.mysnippetsofcode.com/bobs/execguard
|
|
|
|
import (
|
|
"os"
|
|
"encoding/json"
|
|
)
|
|
|
|
type Config struct {
|
|
DbFile string `json:"db_file"` // optional DB File
|
|
LogFile string `json:"log_file"` // optional Log File
|
|
MailProg string `json:"mail_prog"` // optional Mail Program
|
|
ScannerProg string `json:"scanner_prog"` // optional Virus Scanner Program
|
|
ProtectedDirs []string `json:"protected_dirs"`
|
|
Downloads []string `josn:"downloads"`
|
|
AlertEmail string `json:"alert_email"` // optional root@localhost
|
|
SkipDirs []string `json:"skip_dirs"`
|
|
ScanInterval int `json:"scan_interval"` // in minutes, 0 disables scan
|
|
Passphrase string `json:"passphrase"` // optional hash encryption key
|
|
HashEncryption string `json:"hash_encryption"` // "none", "xor", or "xxtea"
|
|
HashType string `json:"hash_type"` // "sha256" or "sha512"
|
|
}
|
|
|
|
func LoadConfig(configFile string) (*Config, error) {
|
|
data, err := os.ReadFile(configFile)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var cfg Config
|
|
if err := json.Unmarshal(data, &cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
return &cfg, nil
|
|
}
|
|
|