0bc6aae601
Part of https://github.com/ooni/probe/issues/2184, because I wanted to allow swapping commands and options more freely. As a side effect, this PR closes https://github.com/ooni/probe/issues/2248. AFAICT, every usage that was legal before is still legal. What has changed seems the freedom to swap commands and options and a much better help that lists the available options.
33 lines
915 B
Go
33 lines
915 B
Go
package main
|
|
|
|
//
|
|
// Run eXperiment by name
|
|
//
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/ooni/probe-cli/v3/internal/oonirun"
|
|
"github.com/ooni/probe-cli/v3/internal/runtimex"
|
|
)
|
|
|
|
// runx runs the given experiment by name
|
|
func runx(ctx context.Context, sess oonirun.Session, experimentName string,
|
|
annotations map[string]string, extraOptions map[string]any, currentOptions *Options) {
|
|
desc := &oonirun.Experiment{
|
|
Annotations: annotations,
|
|
ExtraOptions: extraOptions,
|
|
Inputs: currentOptions.Inputs,
|
|
InputFilePaths: currentOptions.InputFilePaths,
|
|
MaxRuntime: currentOptions.MaxRuntime,
|
|
Name: experimentName,
|
|
NoCollector: currentOptions.NoCollector,
|
|
NoJSON: currentOptions.NoJSON,
|
|
Random: currentOptions.Random,
|
|
ReportFile: currentOptions.ReportFile,
|
|
Session: sess,
|
|
}
|
|
err := desc.Run(ctx)
|
|
runtimex.PanicOnError(err, "cannot run experiment")
|
|
}
|