Documentation
¶
Overview ¶
Package config contains the configuration structs for the Goki tool.
Index ¶
- Variables
- func ArchSupported(arch string) error
- func OSSupported(os string) error
- type Build
- type Config
- type Generate
- type Log
- type Platform
- type Release
- type Setup
- type Types
- func (i Types) Desc() string
- func (i Types) Int64() int64
- func (i Types) IsValid() bool
- func (i Types) MarshalText() ([]byte, error)
- func (i *Types) SetInt64(in int64)
- func (i *Types) SetString(s string) error
- func (i Types) String() string
- func (i *Types) UnmarshalText(text []byte) error
- func (i Types) Values() []enums.Enum
- type Web
Constants ¶
This section is empty.
Variables ¶
var ArchsForOS = map[string][]string{
"darwin": {"386", "amd64", "arm", "arm64"},
"windows": {"386", "amd64", "arm", "arm64"},
"linux": {"386", "amd64", "arm", "arm64"},
"android": {"386", "amd64", "arm", "arm64"},
"ios": {"386", "amd64", "arm", "arm64"},
}
ArchsForOS returns contains all of the architectures supported for each operating system.
var SupportedArch = map[string]bool{ "386": true, "amd64": true, "amd64p32": true, "arm": true, "armbe": true, "arm64": true, "arm64be": true, "loong64": false, "mips": false, "mipsle": false, "mips64": false, "mips64le": false, "mips64p32": false, "mips64p32le": false, "ppc": false, "ppc64": false, "ppc64le": false, "riscv": false, "riscv64": false, "s390": false, "s390x": false, "sparc": false, "sparc64": false, "wasm": true, }
SupportedArch is a map containing all computer architectures and whether they are supported by Goki.
var SupportedOS = map[string]bool{ "aix": false, "android": true, "darwin": true, "dragonfly": false, "freebsd": false, "hurd": false, "illumos": false, "ios": true, "js": true, "linux": true, "nacl": false, "netbsd": false, "openbsd": false, "plan9": false, "solaris": false, "wasip1": false, "windows": true, "zos": false, }
SupportedOS is a map containing all operating systems and whether they are supported by Goki.
Functions ¶
func ArchSupported ¶
ArchSupported determines whether the given architecture is supported by Goki. If it is, it returns nil. If it isn't, it also returns an error detailing the issue with the architecture (not found or not supported).
func OSSupported ¶
OSSupported determines whether the given operating system is supported by Goki. If it is, it returns nil. If it isn't, it returns an error detailing the issue with the operating system (not found or not supported).
Types ¶
type Build ¶
type Build struct { // the path of the package to build Package string `def:"." posarg:"0" required:"-"` // the target platforms to build executables for Target []Platform `flag:"t,target"` // the output file name; if not specified, it depends on the package being built Output string `flag:"o,output"` // the bundle / package ID to use for the app (required for mobile platforms and N/A otherwise); it is typically in the format com.org.app (eg: com.goki.widgets) ID string // whether to build/run the app in debug mode; this currently only works on mobile platforms Debug bool `flag:"d,debug"` // force rebuilding of packages that are already up-to-date Rebuild bool `flag:"a,rebuild"` // install the generated executable Install bool `flag:"i,install"` // print the commands but do not run them PrintOnly bool `flag:"n,print-only"` // print the commands Print bool `flag:"x,print"` // arguments to pass on each go tool compile invocation GCFlags []string // arguments to pass on each go tool link invocation LDFlags []string // a comma-separated list of additional build tags to consider satisfied during the build Tags []string // remove all file system paths from the resulting executable. Instead of absolute file system paths, the recorded file names will begin either a module path@version (when using modules), or a plain import path (when using the standard library, or GOPATH). Trimpath bool // print the name of the temporary work directory and do not delete it when exiting Work bool // the minimal version of the iOS SDK to compile against IOSVersion string `def:"13.0"` // the minimum supported Android SDK (uses-sdk/android:minSdkVersion in AndroidManifest.xml) AndroidMinSDK int `def:"23" min:"23"` // the target Android SDK version (uses-sdk/android:targetSdkVersion in AndroidManifest.xml) AndroidTargetSDK int `def:"29"` }
type Config ¶
type Config struct { // the name of the project Name string // the description of the project Desc string // the version of the project Version string `cmd:"set-version" posarg:"0" def:"v0.0.0"` // the type of the project (app/library) Type Types // the configuration options for the build, install, and run commands Build Build `cmd:"build,install,run" view:"add-fields"` // the configuration information for web Web Web `cmd:"build,install,run" view:"add-fields"` // the configuration options for the setup command Setup Setup `cmd:"setup" view:"add-fields"` // the configuration options for the log command Log Log `cmd:"log" view:"add-fields"` // the configuration options for the release command Release Release `cmd:"release" view:"add-fields"` // the configuration options for the generate command Generate Generate `cmd:"generate" view:"add-fields"` }
Config is the main config struct that contains all of the configuration options for the Goki tool
type Generate ¶ added in v0.1.13
type Generate struct { // the enum generation configuration options passed to enumgen Enumgen enumgen.Config // the generation configuration options passed to gtigen Gtigen gtigen.Config // the source directory to run generate on (can be multiple through ./...) Dir string `def:"." posarg:"0" required:"-" nest:"-"` // the output file location relative to the package on which generate is being called Output string `def:"gokigen.go"` }
type Log ¶
type Log struct { // the target platform to view the logs for (ios or android) Target string `def:"android"` // whether to keep the previous log messages or clear them Keep bool `def:"false"` // messages not generated from your app equal to or above this log level will be shown All string `def:"F"` }
type Platform ¶
Platform is a platform with an operating system and an architecture
type Setup ¶ added in v0.1.23
type Setup struct { // the platform to set things up for Platform Platform `posarg:"0"` }
type Types ¶
type Types int32 //enums:enum -trim-prefix Type
Types is an enum with all of the possible types of packages.
const TypesN Types = 2
TypesN is the highest valid value for type Types, plus one.
func TypesValues ¶
func TypesValues() []Types
TypesValues returns all possible values for the type Types.
func (Types) MarshalText ¶
MarshalText implements the encoding.TextMarshaler interface.
func (*Types) SetString ¶
SetString sets the Types value from its string representation, and returns an error if the string is invalid.
func (*Types) UnmarshalText ¶
UnmarshalText implements the encoding.TextUnmarshaler interface.
type Web ¶ added in v0.1.28
type Web struct { // Port is the port to serve the page at when using the serve command. Port string `def:"8080"` // RandomVersion is whether to automatically add a random string to the // end of the version string for the app when building for web. This is // necessary in order for changes made during local development to show up, // but should not be enabled in release builds to prevent constant inaccurate // update messages. It is enabled by default in the serve command and disabled // by default otherwise. RandomVersion bool // Gzip is whether to gzip the app.wasm file that is built in the build command // and serve it as a gzip-encoded file in the run command. Gzip bool // A placeholder background color for the application page to display before // its stylesheets are loaded. // // DEFAULT: #2d2c2c. BackgroundColor string `def:"#2d2c2c"` // The theme color for the application. This affects how the OS displays the // app (e.g., PWA title bar or Android's task switcher). // // DEFAULT: #2d2c2c. ThemeColor string `def:"#2d2c2c"` // The text displayed while loading a page. Load progress can be inserted by // including "{progress}" in the loading label. // // DEFAULT: "{progress}%". LoadingLabel string // The page language. // // DEFAULT: en. Lang string `def:"en"` // The page title. Title string // The page description. Description string // The page authors. Author string // The page keywords. Keywords []string // The path of the default image that is used by social networks when // linking the app. Image string // The interval between each app auto-update while running in a web browser. // Zero or negative values deactivates the auto-update mechanism. // // Default is 10 seconds. AutoUpdateInterval time.Duration `def:"10000000000"` // The environment variables that are passed to the progressive web app. // // Reserved keys: // - GOAPP_VERSION // - GOAPP_GOAPP_STATIC_RESOURCES_URL Env map[string]string // The HTTP header to retrieve the WebAssembly file content length. // // Content length finding falls back to the Content-Length HTTP header when // no content length is found with the defined header. WasmContentLengthHeader string // The template used to generate app-worker.js. The template follows the // text/template package model. // // By default set to DefaultAppWorkerJS, changing the template have very // high chances to mess up go-app usage. Any issue related to a custom app // worker template is not supported and will be closed. ServiceWorkerTemplate string }
Web containts the configuration information for building for web and creating the HTML page that loads a Go wasm app and its resources.