gsm

package
v0.0.29 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2023 License: BSD-3-Clause Imports: 21 Imported by: 0

Documentation

Overview

Package gsm provides functions for maintaining the source code of Goki itself (Goki Source Management)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Changed

func Changed(c *Config) error

Changed concurrently prints all of the repositories that have been changed and need to be updated in version control.

func Clone

func Clone(c *Config) error

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

func Gendex(c *Config) error

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

func InstallTools(c *Config) error

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

func MakeIOSFramework(c *Config) error

MakeIOSFramework makes a .framework file for iOS from a .dylib file, using the given config information.

func NewVanity

func NewVanity(c *Config) error

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 Pull

func Pull(c *Config) error

Pull concurrently pulls all of the Git repositories in the current directory.

func Release

func Release(c *Config) error

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.

func Work added in v0.0.7

func Work(c *Config) error

Work adds all of the Go modules in the current directory to the go.work file in the current directory.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL