Documentation ¶
Overview ¶
Package gsm provides functions for maintaining the source code of Goki itself (Goki Source Management)
Index ¶
- func Changed(c *Config) error
- func Clone(c *Config) error
- func Gendex(c *Config) error
- func InstallTools(c *Config) error
- func MakeIOSFramework(c *Config) error
- func NewVanity(c *Config) error
- func Pull(c *Config) error
- func Release(c *Config) error
- func ReleaseRepository(rep *Repository) error
- func RepositoryHasChanged(rep *Repository, tag string) (bool, error)
- func Work(c *Config) error
- type Config
- type IOSFramework
- type Repository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Changed ¶
Changed concurrently prints all of the repositories that have been changed and need to be updated in version control.
func Clone ¶
Clone concurrently clones all of the Goki Go repositories into the current directory. It does not clone repositories that the user already has in the current directory.
func Gendex ¶ added in v0.0.10
Gendex runs goki.dev/goki/mobile/gendex.go and install-tools. It should be run in the base goki directory whenever goki.dev/goosi/driver/android/GoNativeActivty.java is updated.
func InstallTools ¶ added in v0.0.7
InstallTools installs all of the Goki tools required for development on the Goki codebase (goki, gsm, gtigen, and enumgen). It should be run in a directory containing all of the goki repositories (set up with gsm clone), and with a go.work file contianing all of those repositories (set up with gsm work).
func MakeIOSFramework ¶ added in v0.0.7
MakeIOSFramework makes a .framework file for iOS from a .dylib file, using the given config information.
func NewVanity ¶
NewVanity makes a new vanity import URL page for the config repository name. It should only be called in the root directory of the goki.github.io repository. It commits and pushes the page.
func Release ¶
Release releases all of the Goki Go repositories in the current folder with goki.dev vanity import URLs (those without vanity import URLs should be released separately), recursively updating each one and all of its dependencies (if the update flag is on, which it is by default), but stopping after a couple of iterations due to pseudo-import cycles at the module level.
func ReleaseRepository ¶
func ReleaseRepository(rep *Repository) error
ReleaseRepository releases the given repository by calling "goki update-version" and "goki release".
func RepositoryHasChanged ¶ added in v0.0.1
func RepositoryHasChanged(rep *Repository, tag string) (bool, error)
RepositoryHasChanged returns whether the given repository has changed since the given Git version tag.
Types ¶
type Config ¶
type Config struct { // Update is whether to update dependencies and tidy modules // when doing a release cycle. It should only be turned off // in rare cases in which updating dependencies or tidying // modules would cause problems or is not possible. Update bool `cmd:"release" def:"true"` // The name of the repository to create a vanity import site for. // A major version suffix can be added to the end of the repository name // (eg: "gi/v2") Repository string `cmd:"new-vanity" posarg:"0"` // the config info for the make-ios-framework command IOSFramework IOSFramework `cmd:"make-ios-framework"` }
Config contains the configuration information for the GSM tool
type IOSFramework ¶ added in v0.0.7
type IOSFramework struct { // the path of the .dylib file Dylib string // the name of the resulting framework Framework string // the name/email address of the developer to have sign the framework Developer string // the organization to use in the bundle id for the resulting framework Organization string }
type Repository ¶
type Repository struct { // The actual GitHub name of the repository Name string // The formatted title of the repository Title string // The URL of the GitHub repository (including https://) RepositoryURL string // The goki.dev vanity import URL of the repository (not including https://) VanityURL string // The Goki imports of the repository GokiImports []string // Whether the repository has changed since the last release Changed bool // Whether the repository has been released in the context of this command Released bool // The version of the repository Version string }
Repository represents a Goki Go repository. Not all fields are used by all use cases.
func GetLocalRepositories ¶
func GetLocalRepositories() ([]*Repository, error)
GetLocalRepositories concurrently gets all of the Goki Go repositories with goki.dev vanity import URLs in the current directory on the local filesystem.
func GetWebsiteRepositories ¶
func GetWebsiteRepositories() ([]*Repository, error)
GetWebsiteRepositories gets all of the Goki Go repositories as Repository objects from the https://goki.dev/repositories page.