d57c78bc71
This is how I did it: 1. `git clone https://github.com/ooni/probe-engine internal/engine` 2. ``` (cd internal/engine && git describe --tags) v0.23.0 ``` 3. `nvim go.mod` (merging `go.mod` with `internal/engine/go.mod` 4. `rm -rf internal/.git internal/engine/go.{mod,sum}` 5. `git add internal/engine` 6. `find . -type f -name \*.go -exec sed -i 's@/ooni/probe-engine@/ooni/probe-cli/v3/internal/engine@g' {} \;` 7. `go build ./...` (passes) 8. `go test -race ./...` (temporary failure on RiseupVPN) 9. `go mod tidy` 10. this commit message Once this piece of work is done, we can build a new version of `ooniprobe` that is using `internal/engine` directly. We need to do more work to ensure all the other functionality in `probe-engine` (e.g. making mobile packages) are still WAI. Part of https://github.com/ooni/probe/issues/1335
74 lines
2.9 KiB
Go
74 lines
2.9 KiB
Go
package tasks
|
|
|
|
// Settings contains settings for a task. This structure derives from
|
|
// the one described by MK v0.10.9 FFI API (https://git.io/Jv4Rv), yet
|
|
// since 2020-12-03 we're not backwards compatible anymore.
|
|
type Settings struct {
|
|
// Annotations contains the annotations to be added
|
|
// to every measurements performed by the task.
|
|
Annotations map[string]string `json:"annotations,omitempty"`
|
|
|
|
// AssetsDir is the directory where to store assets. This
|
|
// field is an extension of MK's specification. If
|
|
// this field is empty, the task won't start.
|
|
AssetsDir string `json:"assets_dir"`
|
|
|
|
// DisabledEvents contains disabled events. See
|
|
// https://git.io/Jv4Rv for the events names.
|
|
DisabledEvents []string `json:"disabled_events,omitempty"`
|
|
|
|
// Inputs contains the inputs. The task will fail if it
|
|
// requires input and you provide no input.
|
|
Inputs []string `json:"inputs,omitempty"`
|
|
|
|
// LogLevel contains the logs level. See https://git.io/Jv4Rv
|
|
// for the names of the available log levels.
|
|
LogLevel string `json:"log_level,omitempty"`
|
|
|
|
// Name contains the task name. By https://git.io/Jv4Rv the
|
|
// names are in camel case, e.g. `Ndt`.
|
|
Name string `json:"name"`
|
|
|
|
// Options contains the task options.
|
|
Options SettingsOptions `json:"options"`
|
|
|
|
// StateDir is the directory where to store persistent data. This
|
|
// field is an extension of MK's specification. If
|
|
// this field is empty, the task won't start.
|
|
StateDir string `json:"state_dir"`
|
|
|
|
// TempDir is the temporary directory. This field is an extension of MK's
|
|
// specification. If this field is empty, we will pick the tempdir that
|
|
// ioutil.TempDir uses by default, which may not work on mobile. According
|
|
// to our experiments as of 2020-06-10, leaving the TempDir empty works
|
|
// for iOS and does not work for Android.
|
|
TempDir string `json:"temp_dir"`
|
|
|
|
// Version indicates the version of this structure.
|
|
Version int64 `json:"version"`
|
|
}
|
|
|
|
// SettingsOptions contains the settings options
|
|
type SettingsOptions struct {
|
|
// MaxRuntime is the maximum runtime expressed in seconds. A negative
|
|
// value for this field disables the maximum runtime. Using
|
|
// a zero value will also mean disabled. This is not the
|
|
// original behaviour of Measurement Kit, which used to run
|
|
// for zero time in such case.
|
|
MaxRuntime float64 `json:"max_runtime,omitempty"`
|
|
|
|
// NoCollector indicates whether to use a collector
|
|
NoCollector bool `json:"no_collector,omitempty"`
|
|
|
|
// ProbeServicesBaseURL contains the probe services base URL.
|
|
ProbeServicesBaseURL string `json:"probe_services_base_url,omitempty"`
|
|
|
|
// SoftwareName is the software name. If this option is not
|
|
// present, then the library startup will fail.
|
|
SoftwareName string `json:"software_name,omitempty"`
|
|
|
|
// SoftwareVersion is the software version. If this option is not
|
|
// present, then the library startup will fail.
|
|
SoftwareVersion string `json:"software_version,omitempty"`
|
|
}
|