Add override for mzn-fzn flags

This commit is contained in:
Jip J. Dekker 2016-12-06 16:35:47 +01:00
parent dfae91a383
commit 452b19faf2
2 changed files with 14 additions and 8 deletions

View File

@ -58,7 +58,11 @@ func RunInstance(solver *settings.Solver, instance *settings.Instance) {
if instance.Data != "" { if instance.Data != "" {
args = append(args, "--data", instance.Data) args = append(args, "--data", instance.Data)
} }
args = append(args, strings.Split(viper.GetString("flags"), " ")...) if solver.OverrideFlags != "" {
args = append(args, strings.Split(solver.OverrideFlags, " ")...)
} else {
args = append(args, strings.Split(viper.GetString("flags"), " ")...)
}
proc := exec.Command(viper.GetString("mznfzn"), args...) proc := exec.Command(viper.GetString("mznfzn"), args...)
if out, err := proc.CombinedOutput(); err != nil { if out, err := proc.CombinedOutput(); err != nil {

View File

@ -4,10 +4,11 @@ import "github.com/spf13/viper"
// Solver contains all information regarding a FlatZinc solver and its output // Solver contains all information regarding a FlatZinc solver and its output
type Solver struct { type Solver struct {
Name string // Solver name Name string // Solver name
Binary string // Binary location Binary string // Binary location
Globals string // Globals directory Globals string // Globals directory
Flags string // FZN solver flags Flags string // FZN solver flags
OverrideFlags string // Override to global mzn-fzn flags
Extractors *ExtractionCluster Extractors *ExtractionCluster
} }
@ -20,9 +21,10 @@ func SolversFromViper() []Solver {
options := viper.GetStringMapString("solvers." + key) options := viper.GetStringMapString("solvers." + key)
solver := Solver{ solver := Solver{
Name: key, Name: key,
Flags: options["flags"], Flags: options["flags"],
Globals: options["globals"], Globals: options["globals"],
OverrideFlags: options["override_flags"],
} }
if bin, exists := options["binary"]; exists { if bin, exists := options["binary"]; exists {
solver.Binary = bin solver.Binary = bin