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 != "" {
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...)
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
type Solver struct {
Name string // Solver name
Binary string // Binary location
Globals string // Globals directory
Flags string // FZN solver flags
Name string // Solver name
Binary string // Binary location
Globals string // Globals directory
Flags string // FZN solver flags
OverrideFlags string // Override to global mzn-fzn flags
Extractors *ExtractionCluster
}
@ -20,9 +21,10 @@ func SolversFromViper() []Solver {
options := viper.GetStringMapString("solvers." + key)
solver := Solver{
Name: key,
Flags: options["flags"],
Globals: options["globals"],
Name: key,
Flags: options["flags"],
Globals: options["globals"],
OverrideFlags: options["override_flags"],
}
if bin, exists := options["binary"]; exists {
solver.Binary = bin