本文整理汇总了Golang中github.com/keybase/client/go/libkb.VersionString函数的典型用法代码示例。如果您正苦于以下问题:Golang VersionString函数的具体用法?Golang VersionString怎么用?Golang VersionString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VersionString函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: keybaseServiceStatus
func keybaseServiceStatus(g *libkb.GlobalContext, label string, bundleVersion string) keybase1.ServiceStatus {
if label == "" {
label = defaultServiceLabel(g.Env.GetRunMode())
}
kbService := launchd.NewService(label)
st, done := serviceStatusFromLaunchd(kbService, path.Join(g.Env.GetRuntimeDir(), "keybased.info"))
st.BundleVersion = bundleVersion
if done {
return st
}
// Something must be wrong if this build doesn't match the package version.
buildVersion := libkb.VersionString()
if bundleVersion != "" && bundleVersion != buildVersion {
st.InstallAction = keybase1.InstallAction_NONE
st.InstallStatus = keybase1.InstallStatus_ERROR
st.Status = errorStatus("INSTALL_ERROR", fmt.Sprintf("Version mismatch: %s != %s", bundleVersion, buildVersion))
return st
}
installStatus, installAction, status := installStatus(st.Version, st.BundleVersion, st.LastExitStatus)
st.InstallStatus = installStatus
st.InstallAction = installAction
st.Status = status
return st
}
开发者ID:polluks,项目名称:client,代码行数:27,代码来源:install_osx.go
示例2: PrintOutOfDateWarnings
func PrintOutOfDateWarnings(g *libkb.GlobalContext) {
g.Log.Debug("+ PrintOutOfDateWarnings")
defer g.Log.Debug("- PrintOutOfDateWarnings")
cli, err := GetConfigClient(g)
if err != nil {
g.Log.Debug("Ignoring error in printOutOfDateWarnings: %s", err)
return
}
info, err := cli.CheckAPIServerOutOfDateWarning(context.TODO())
if err != nil {
g.Log.Debug("Ignoring error in printOutOfDateWarnings: %s", err)
return
}
g.Log.Debug("Got OutOfDateInfo: %#v", info)
if info.CustomMessage != "" {
printCustomMessage(g, info.CustomMessage)
}
if info.UpgradeTo != "" {
g.Log.Warning("Upgrade recommended to client version %s or above (you have v%s)",
info.UpgradeTo, libkb.VersionString())
}
if info.UpgradeURI != "" {
libkb.PlatformSpecificUpgradeInstructions(g, info.UpgradeURI)
}
}
开发者ID:qbit,项目名称:client,代码行数:28,代码来源:out_of_date.go
示例3: GetConfig
func (h ConfigHandler) GetConfig(_ context.Context, sessionID int) (keybase1.Config, error) {
var c keybase1.Config
c.ServerURI = h.G().Env.GetServerURI()
c.RunMode = string(h.G().Env.GetRunMode())
var err error
c.SocketFile, err = h.G().Env.GetSocketFile()
if err != nil {
return c, err
}
gpg := h.G().GetGpgClient()
canExec, err := gpg.CanExec()
if err == nil {
c.GpgExists = canExec
c.GpgPath = gpg.Path()
}
c.Version = libkb.VersionString()
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err == nil {
c.Path = dir
}
c.ConfigPath = h.G().Env.GetConfigFilename()
c.Label = h.G().Env.GetLabel()
return c, nil
}
开发者ID:moul,项目名称:client,代码行数:30,代码来源:config.go
示例4: DefaultUpdaterOptions
// DefaultUpdaterOptions returns update config for this environment
func DefaultUpdaterOptions(g *libkb.GlobalContext) *keybase1.UpdateOptions {
ret := &keybase1.UpdateOptions{
Version: libkb.VersionString(),
Channel: "main", // The default channel
Platform: runtime.GOOS,
Source: string(sources.DefaultUpdateSourceName()),
}
switch {
case runtime.GOOS == "darwin" && g.Env.GetRunMode() == libkb.ProductionRunMode:
ret.DestinationPath = "/Applications/Keybase.app"
}
return ret
}
开发者ID:mark-adams,项目名称:client,代码行数:14,代码来源:update.go
示例5: runLocal
func (v *CmdVersion) runLocal() {
dui := v.G().UI.GetDumbOutputUI()
prfx := ""
if v.svc {
prfx = "Client: "
}
switch v.mode {
case modeShort:
dui.Printf("%s%s\n", prfx, libkb.Version)
case modeNormal:
dui.Printf("%s%s\n", prfx, libkb.VersionString())
case modeVerbose:
libkb.VersionMessage(func(s string) { dui.Printf("%s\n", s) })
}
}
开发者ID:mark-adams,项目名称:client,代码行数:15,代码来源:cmd_version.go
示例6: GetConfig
func (h ConfigHandler) GetConfig(_ context.Context, sessionID int) (keybase1.Config, error) {
var c keybase1.Config
c.ServerURI = h.G().Env.GetServerURI()
c.RunMode = string(h.G().Env.GetRunMode())
var err error
c.SocketFile, err = h.G().Env.GetSocketFile()
if err != nil {
return c, err
}
gpg := h.G().GetGpgClient()
canExec, err := gpg.CanExec()
if err == nil {
c.GpgExists = canExec
c.GpgPath = gpg.Path()
}
c.Version = libkb.VersionString()
c.VersionShort = libkb.Version
var v []string
libkb.VersionMessage(func(s string) {
v = append(v, s)
})
c.VersionFull = strings.Join(v, "\n")
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err == nil {
c.Path = dir
}
c.ConfigPath = h.G().Env.GetConfigFilename()
c.Label = h.G().Env.GetLabel()
if h.svc != nil {
if h.svc.ForkType == keybase1.ForkType_AUTO {
c.IsAutoForked = true
}
c.ForkType = h.svc.ForkType
}
return c, nil
}
开发者ID:jacobhaven,项目名称:client,代码行数:43,代码来源:config.go
示例7: KeybaseServiceStatus
func KeybaseServiceStatus(g *libkb.GlobalContext, label string) (status keybase1.ServiceStatus) {
if label == "" {
label = DefaultServiceLabel(g.Env.GetRunMode())
}
kbService := launchd.NewService(label)
status, err := serviceStatusFromLaunchd(g, kbService, path.Join(g.Env.GetRuntimeDir(), "keybased.info"))
status.BundleVersion = libkb.VersionString()
if err != nil {
return
}
if status.InstallStatus == keybase1.InstallStatus_NOT_INSTALLED {
return
}
installStatus, installAction, kbStatus := ResolveInstallStatus(status.Version, status.BundleVersion, status.LastExitStatus)
status.InstallStatus = installStatus
status.InstallAction = installAction
status.Status = kbStatus
return
}
开发者ID:jacobhaven,项目名称:client,代码行数:21,代码来源:install_osx.go
示例8: KeybaseServiceStatus
// KeybaseServiceStatus returns service status for Keybase service
func KeybaseServiceStatus(context Context, label string, wait time.Duration, log Log) (status keybase1.ServiceStatus) {
if label == "" {
status = keybase1.ServiceStatus{Status: keybase1.StatusFromCode(keybase1.StatusCode_SCServiceStatusError, "No service label")}
return
}
kbService := launchd.NewService(label)
status, err := serviceStatusFromLaunchd(kbService, context.GetServiceInfoPath(), wait, log)
status.BundleVersion = libkb.VersionString()
if err != nil {
return
}
if status.InstallStatus == keybase1.InstallStatus_NOT_INSTALLED {
return
}
installStatus, installAction, kbStatus := ResolveInstallStatus(status.Version, status.BundleVersion, status.LastExitStatus, log)
status.InstallStatus = installStatus
status.InstallAction = installAction
status.Status = kbStatus
return
}
开发者ID:qbit,项目名称:client,代码行数:23,代码来源:install_osx.go
示例9: NewCmdVersion
func NewCmdVersion(cl *libcmdline.CommandLine) cli.Command {
return cli.Command{
Name: "version",
Usage: "Print out version and build information",
Flags: []cli.Flag{
cli.StringFlag{
Name: "f, format",
Usage: "Alternate format for version output. Specify 's' for simple (1.2.3) or 'v' for verbose. Default (blank) includes build number (1.2.3-400).",
},
},
Action: func(c *cli.Context) {
switch c.String("format") {
case "":
GlobUI.Println(libkb.VersionString())
case "s":
GlobUI.Println(libkb.Version)
case "v":
libkb.VersionMessage(func(s string) { GlobUI.Println(s) })
}
os.Exit(0)
},
}
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:23,代码来源:cmd_version.go
示例10: PopulateApp
func (p *CommandLine) PopulateApp(addHelp bool, extraFlags []cli.Flag) {
app := p.app
app.Name = "keybase"
app.Version = libkb.VersionString()
app.Usage = "Keybase command line client."
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "home, H",
Usage: "Specify an (alternate) home directory.",
},
cli.StringFlag{
Name: "server, s",
Usage: "Specify server API.",
},
cli.StringFlag{
Name: "config-file, c",
Usage: "Specify an (alternate) master config file.",
},
cli.StringFlag{
Name: "session-file",
Usage: "Specify an alternate session data file.",
},
cli.StringFlag{
Name: "db",
Usage: "Specify an alternate local DB location.",
},
cli.StringFlag{
Name: "api-uri-path-prefix",
Usage: "Specify an alternate API URI path prefix.",
},
cli.StringFlag{
Name: "pinentry",
Usage: "Specify a path to find a pinentry program.",
},
cli.StringFlag{
Name: "secret-keyring",
Usage: "Location of the Keybase secret-keyring (P3SKB-encoded).",
},
cli.StringFlag{
Name: "socket-file",
Usage: "Location of the keybased socket-file.",
},
cli.StringFlag{
Name: "pid-file",
Usage: "Location of the keybased pid-file (to ensure only one running daemon).",
},
cli.StringFlag{
Name: "proxy",
Usage: "Specify an HTTP(s) proxy to ship all Web requests over.",
},
cli.BoolFlag{
Name: "debug, d",
Usage: "Enable debugging mode.",
},
cli.StringFlag{
Name: "run-mode",
Usage: "Run mode (devel, staging, prod).", // These are defined in libkb/constants.go
},
cli.StringFlag{
Name: "log-format",
Usage: "Log format (default, plain, file, fancy).",
},
cli.StringFlag{
Name: "pgpdir, gpgdir",
Usage: "Specify a PGP directory (default is ~/.gnupg).",
},
cli.BoolFlag{
Name: "api-dump-unsafe",
Usage: "Dump API call internals (may leak secrets).",
},
cli.StringFlag{
Name: "merkle-key-fingerprints",
Usage: "Set of admissable Merkle Tree fingerprints (colon-separated).",
},
cli.IntFlag{
Name: "user-cache-size",
Usage: "Number of User entries to cache.",
},
cli.IntFlag{
Name: "proof-cache-size",
Usage: "Number of proof entries to cache.",
},
cli.StringFlag{
Name: "gpg",
Usage: "Path to GPG client (optional for exporting keys).",
},
cli.StringFlag{
Name: "gpg-options",
Usage: "Options to use when calling GPG.",
},
cli.BoolFlag{
Name: "standalone",
Usage: "Use the client without any daemon support.",
},
cli.StringFlag{
Name: "local-rpc-debug-unsafe",
Usage: "Use to debug local RPC (may leak secrets).",
},
cli.StringFlag{
//.........这里部分代码省略.........
开发者ID:moul,项目名称:client,代码行数:101,代码来源:cmdline.go
示例11: FixVersionClash
func FixVersionClash(g *libkb.GlobalContext, cl libkb.CommandLine) (err error) {
var cli keybase1.ConfigClient
var ctlCli keybase1.CtlClient
var serviceConfig keybase1.Config
var socket net.Conn
g.Log.Debug("+ FixVersionClash")
defer func() {
if socket != nil {
socket.Close()
socket = nil
}
g.Log.Debug("- FixVersionClash -> %v", err)
}()
// Make our own stack here, circumventing all of our libraries, so
// as not to introduce any incompatibilities with earlier services
// (like 1.0.8)
socket, err = g.SocketInfo.DialSocket()
if err != nil {
g.Log.Debug("| Failed to DialSocket, but ignoring error: %s\n", err)
return nil
}
xp := libkb.NewTransportFromSocket(g, socket)
srv := rpc.NewServer(xp, libkb.WrapError)
gcli := rpc.NewClient(xp, libkb.ErrorUnwrapper{})
cli = keybase1.ConfigClient{Cli: gcli}
srv.Register(NewLogUIProtocol())
serviceConfig, err = cli.GetConfig(context.TODO(), 0)
if err != nil {
return err
}
g.Log.Debug("| Contacted service; got version: %s", serviceConfig.Version)
// We'll check and restart the service if there is a new version.
var semverClient, semverService semver.Version
cliVersion := libkb.VersionString()
if g.Env.GetRunMode() == libkb.DevelRunMode {
tmp := os.Getenv("KEYBASE_SET_VERSION")
if len(tmp) > 0 {
cliVersion = tmp
}
}
semverClient, err = semver.Make(cliVersion)
if err != nil {
return err
}
semverService, err = semver.Make(serviceConfig.Version)
if err != nil {
return err
}
g.Log.Debug("| version check %s v %s", semverClient, semverService)
if semverClient.EQ(semverService) {
g.Log.Debug("| versions check out")
return nil
} else if semverClient.LT(semverService) && semverClient.Major < semverService.Major {
return fmt.Errorf("Unexpected version clash; client is at v%s, which is significantly *less than* server at v%s",
semverClient, semverService)
}
g.Log.Warning("Restarting after upgrade; service is running v%s, while v%s is available",
semverService, semverClient)
origPid, err := getPid(g)
if err != nil {
g.Log.Warning("Failed to find pid for service: %v\n", err)
}
if serviceConfig.ForkType == keybase1.ForkType_LAUNCHD {
return restartLaunchdService(g, serviceConfig.Label, g.Env.GetServiceInfoPath())
}
ctlCli = keybase1.CtlClient{Cli: gcli}
err = ctlCli.Stop(context.TODO(), keybase1.StopArg{})
if err != nil && origPid >= 0 {
// A fallback approach. I haven't seen a need for it, but it can't really hurt.
// If we fail to restart via Stop() then revert to kill techniques.
g.Log.Warning("Error in Stopping %d via RPC: %v; trying fallback (kill via pidfile)", origPid, err)
time.Sleep(time.Second)
var newPid int
newPid, err = getPid(g)
if err != nil {
g.Log.Warning("No pid; shutdown must have worked (%v)", err)
} else if newPid != origPid {
g.Log.Warning("New service found with pid=%d; assuming restart", newPid)
return nil
} else {
if err = killPid(origPid); err != nil {
g.Log.Warning("Kill via pidfile failed: %v\n", err)
return err
}
g.Log.Warning("Successful kill() on pid=%d", origPid)
}
}
//.........这里部分代码省略.........
开发者ID:qbit,项目名称:client,代码行数:101,代码来源:versionfix.go
示例12: load
func (c *CmdStatus) load() (*fstatus, error) {
var status fstatus
status.Client.Version = libkb.VersionString()
cli, err := GetConfigClient(c.G())
if err != nil {
return nil, err
}
curStatus, err := cli.GetCurrentStatus(context.TODO(), 0)
if err != nil {
return nil, err
}
status.LoggedInProvisioned = curStatus.LoggedIn
if curStatus.User != nil {
status.Username = curStatus.User.Username
status.UserID = curStatus.User.Uid.String()
}
extStatus, err := cli.GetExtendedStatus(context.TODO(), 0)
if err != nil {
return nil, err
}
config, err := cli.GetConfig(context.TODO(), 0)
if err != nil {
return nil, err
}
status.ConfigPath = config.ConfigPath
status.Service.Version = config.Version
status.Device = extStatus.Device
if extStatus.Standalone {
status.Service.Running = false
} else {
status.Service.Running = true
status.Service.Log = path.Join(extStatus.LogDir, c.serviceLogFilename())
}
status.SessionStatus = c.sessionStatus(extStatus.Session)
status.PassphraseStreamCached = extStatus.PassphraseStreamCached
kbfsVersion, err := install.KBFSBundleVersion(c.G(), "")
if err == nil {
status.KBFS.Version = kbfsVersion
}
status.KBFS.Log = path.Join(extStatus.LogDir, c.kbfsLogFilename())
status.Desktop.Running = extStatus.DesktopUIConnected
status.Desktop.Log = path.Join(extStatus.LogDir, c.desktopLogFilename())
status.DefaultUsername = extStatus.DefaultUsername
status.ProvisionedUsernames = extStatus.ProvisionedUsernames
status.Clients = extStatus.Clients
status.PlatformInfo = extStatus.PlatformInfo
// set anything os-specific:
if err := c.osSpecific(&status); err != nil {
return nil, err
}
return &status, nil
}
开发者ID:Varjelus,项目名称:keybase-client,代码行数:67,代码来源:cmd_status.go
示例13: client
func (c *CmdStatus) client() {
dui := c.G().UI.GetDumbOutputUI()
dui.Printf("Client:\n")
dui.Printf("\tversion:\t%s\n", libkb.VersionString())
}
开发者ID:Varjelus,项目名称:keybase-client,代码行数:5,代码来源:cmd_status.go
示例14: main
// Create the syso file
func main() {
outPtr := flag.String("o", "rsrc_windows.syso", "resource output pathname")
printverPtr := flag.Bool("v", false, "print version to console (no .syso output)")
printWinVerPtr := flag.Bool("w", false, "print windows format version to console (no .syso output)")
iconPtr := flag.String("i", "../../../keybase/public/images/favicon.ico", "icon pathname")
flag.Parse()
var fv goversioninfo.FileVersion
if int, err := fmt.Sscanf(libkb.Version, "%d.%d.%d", &fv.Major, &fv.Minor, &fv.Patch); int != 3 || err != nil {
log.Printf("Error parsing version %v", err)
os.Exit(3)
}
if int, err := fmt.Sscanf(libkb.Build(), "%d", &fv.Build); int != 1 || err != nil {
log.Printf("Error parsing build %v", err)
os.Exit(3)
}
if *printverPtr {
fmt.Printf("%d.%d.%d-%d", fv.Major, fv.Minor, fv.Patch, fv.Build)
return
}
if *printWinVerPtr {
fmt.Printf("%d.%d.%d.%d", fv.Major, fv.Minor, fv.Patch, fv.Build)
return
}
// Create a new container
vi := &goversioninfo.VersionInfo{
FixedFileInfo: goversioninfo.FixedFileInfo{
FileVersion: fv,
ProductVersion: fv,
FileFlagsMask: "3f",
FileFlags: "00",
FileOS: "040004",
FileType: "01",
FileSubType: "00",
},
StringFileInfo: goversioninfo.StringFileInfo{
CompanyName: "Keybase, Inc.",
FileDescription: "Keybase utility",
InternalName: "Keybase",
LegalCopyright: "Copyright (c) 2015, Keybase",
OriginalFilename: "keybase.exe",
ProductName: "Keybase",
ProductVersion: libkb.VersionString(),
},
VarFileInfo: goversioninfo.VarFileInfo{
Translation: goversioninfo.Translation{
LangID: 0x409, // english
CharsetID: 0x4B0, // unicode
},
},
}
// Fill the structures with config data
vi.Build()
// Write the data to a buffer
vi.Walk()
// Optionally, embed an icon by path
// If the icon has multiple sizes, all of the sizes will be embedded
vi.IconPath = *iconPtr
// Create the file
if err := vi.WriteSyso(*outPtr); err != nil {
log.Printf("Error writing %s: %v", *outPtr, err)
os.Exit(3)
}
}
开发者ID:mark-adams,项目名称:client,代码行数:75,代码来源:main.go
示例15: load
func (c *CmdStatus) load() (*fstatus, error) {
var status fstatus
status.Client.Version = libkb.VersionString()
cli, err := GetConfigClient(c.G())
if err != nil {
return nil, err
}
curStatus, err := cli.GetCurrentStatus(context.TODO(), 0)
if err != nil {
return nil, err
}
status.LoggedInProvisioned = curStatus.LoggedIn
status.SessionIsValid = curStatus.SessionIsValid
if curStatus.User != nil {
status.Username = curStatus.User.Username
status.UserID = curStatus.User.Uid.String()
}
extStatus, err := cli.GetExtendedStatus(context.TODO(), 0)
if err != nil {
return nil, err
}
config, err := cli.GetConfig(context.TODO(), 0)
if err != nil {
return nil, err
}
status.ConfigPath = config.ConfigPath
status.Service.Version = config.Version
status.Device = extStatus.Device
if extStatus.Standalone {
status.Service.Running = false
} else {
status.Service.Running = true
status.Service.Log = filepath.Join(extStatus.LogDir, libkb.ServiceLogFileName)
}
status.SessionStatus = c.sessionStatus(extStatus.Session)
status.PassphraseStreamCached = extStatus.PassphraseStreamCached
status.TsecCached = extStatus.TsecCached
status.DeviceSigKeyCached = extStatus.DeviceSigKeyCached
status.DeviceEncKeyCached = extStatus.DeviceEncKeyCached
status.PaperSigKeyCached = extStatus.PaperSigKeyCached
status.PaperEncKeyCached = extStatus.PaperEncKeyCached
status.StoredSecret = extStatus.StoredSecret
status.SecretPromptSkip = extStatus.SecretPromptSkip
if kbfs := getFirstClient(extStatus.Clients, keybase1.ClientType_KBFS); kbfs != nil {
status.KBFS.Version = kbfs.Version
status.KBFS.Running = true
} else {
kbfsVersion, err := install.KBFSBundleVersion(c.G(), "")
if err == nil {
status.KBFS.Version = kbfsVersion
}
}
if desktop := getFirstClient(extStatus.Clients, keybase1.ClientType_GUI); desktop != nil {
status.Desktop.Running = true
status.Desktop.Version = desktop.Version
}
status.KBFS.Log = filepath.Join(extStatus.LogDir, libkb.KBFSLogFileName)
status.Desktop.Log = filepath.Join(extStatus.LogDir, libkb.DesktopLogFileName)
status.Updater.Log = filepath.Join(extStatus.LogDir, libkb.UpdaterLogFileName)
status.Start.Log = filepath.Join(extStatus.LogDir, libkb.StartLogFileName)
status.DefaultUsername = extStatus.DefaultUsername
status.ProvisionedUsernames = extStatus.ProvisionedUsernames
status.Clients = extStatus.Clients
status.PlatformInfo = extStatus.PlatformInfo
// set anything os-specific:
if err := c.osSpecific(&status); err != nil {
return nil, err
}
return &status, nil
}
开发者ID:qbit,项目名称:client,代码行数:87,代码来源:cmd_status.go
示例16: FixVersionClash
func FixVersionClash(g *libkb.GlobalContext, cl libkb.CommandLine) (err error) {
var cli keybase1.ConfigClient
var ctlCli keybase1.CtlClient
var serviceConfig keybase1.Config
g.Log.Debug("+ FixVersionClash")
defer func() {
g.Log.Debug("- FixVersionClash -> %v", err)
}()
cli, err = GetConfigClient(g)
if err != nil {
return err
}
serviceConfig, err = cli.GetConfig(context.TODO(), 0)
if err != nil {
return err
}
g.Log.Debug("| Contacted service; got version: %s", serviceConfig.Version)
// We'll check and restart the service if there is a new version.
var semverClient, semverService semver.Version
cliVersion := libkb.VersionString()
if g.Env.GetRunMode() == libkb.DevelRunMode {
tmp := os.Getenv("KEYBASE_SET_VERSION")
if len(tmp) > 0 {
cliVersion = tmp
}
}
semverClient, err = semver.Make(cliVersion)
if err != nil {
return err
}
semverService, err = semver.Make(serviceConfig.Version)
if err != nil {
return err
}
g.Log.Debug("| version check %s v %s", semverClient, semverService)
if semverClient.EQ(semverService) {
g.Log.Debug("| versions check out")
return nil
} else if semverClient.LT(semverService) {
return fmt.Errorf("Unexpected version clash; client is at v%s, which *less than* server at v%s",
semverClient, semverService)
}
g.Log.Warning("Restarting after upgrade; service is running v%s, while v%s is available",
semverService, semverClient)
ctlCli, err = GetCtlClient(g)
if err != nil {
return err
}
err = ctlCli.Stop(context.TODO(), 0)
if err != nil {
return err
}
time.Sleep(10 * time.Millisecond)
g.Log.Info("Waiting for shutdown...")
time.Sleep(1 * time.Second)
if serviceConfig.IsAutoForked {
g.Log.Info("Restarting service...")
_, err = AutoForkServer(g, cl)
}
return err
}
开发者ID:polluks,项目名称:client,代码行数:69,代码来源:versionfix.go
示例17: KeybaseServiceStatus
func KeybaseServiceStatus(g *libkb.GlobalContext, bundleVersion string) keybase1.ServiceStatus {
serviceLabel := libkb.DefaultServiceLabel(libkb.KeybaseServiceID, libkb.DefaultRunMode)
kbService := launchd.NewService(serviceLabel)
kbLaunchdStatus, err := kbService.Status()
if err != nil {
return errorStatus(err)
}
if kbLaunchdStatus == nil {
return keybase1.ServiceStatus{InstallStatus: keybase1.InstallStatus_NOT_INSTALLED}
}
var config keybase1.Config
if kbLaunchdStatus.Pid() != "" {
runtimeDir := g.Env.GetRuntimeDir()
_, err := libkb.WaitForServiceInfoFile(path.Join(runtimeDir, "keybased.info"), kbLaunchdStatus.Pid(), 5, 500*time.Millisecond, "launchd status for service")
if err != nil {
return errorStatus(err)
}
configClient, err := GetConfigClient(g)
if err != nil {
return errorStatus(err)
}
config, err = configClient.GetConfig(context.TODO(), 0)
if err != nil {
return errorStatus(err)
}
if config.Label != kbLaunchdStatus.Label() {
return errorStatus(fmt.Errorf("Service label mismatch: %s != %s", config.Label, kbLaunchdStatus.Label()))
}
}
version := config.Version
buildVersion := libkb.VersionString()
st := keybase1.ServiceStatus{
Version: config.Version,
Label: kbLaunchdStatus.Label(),
Pid: kbLaunchdStatus.Pid(),
LastExitStatus: kbLaunchdStatus.LastExitStatus(),
BundleVersion: bundleVersion,
}
// Something must be wrong if this build doesn't match the package version.
if bundleVersion != buildVersion {
st.InstallStatus = keybase1.InstallStatus_ERROR
st.InstallAction = keybase1.InstallAction_NONE
st.Error = &keybase1.ServiceStatusError{Message: fmt.Sprintf("Version mismatch: %s != %s", bundleVersion, buildVersion)}
return st
}
installStatus, installAction, se := installStatus(version, bundleVersion, st.LastExitStatus)
st.InstallStatus = installStatus
st.InstallAction = installAction
st.Error = se
return st
}
开发者ID:moul,项目名称:client,代码行数:61,代码来源:launchd_status_osx.go
示例18: PopulateApp
func (p *CommandLine) PopulateApp(addHelp bool, extraFlags []cli.Flag) {
app := p.app
app.Name = "keybase"
app.Version = libkb.VersionString()
app.Usage = "Keybase command line client."
app.Flags = []cli.Flag{
cli.BoolFlag{
Name: "api-dump-unsafe",
Usage: "Dump API call internals (may leak secrets).",
},
cli.StringFlag{
Name: "api-timeout",
Usage: "set the HTTP timeout for API calls to the keybase API server",
},
cli.StringFlag{
Name: "api-uri-path-prefix",
Usage: "Specify an alternate API URI path prefix.",
},
cli.StringFlag{
Name: "app-start-mode",
Usage: "Specify 'service' to auto-start UI app, or anything else to disable",
},
cli.StringFlag{
Name: "code-signing-kids",
Usage: "Set of code signing key IDs (colon-separated).",
},
cli.StringFlag{
Name: "config-file, c",
Usage: "Specify an (alternate) master config file.",
},
cli.StringFlag{
Name: "db",
Usage: "Specify an alternate local DB location.",
},
cli.BoolFlag{
Name: "debug, d",
Usage: "Enable debugging mode.",
},
cli.StringFlag{
Name: "gpg",
Usage: "Path to GPG client (optional for exporting keys).",
},
cli.StringFlag{
Name: "gpg-options",
Usage: "Options to use when calling GPG.",
},
cli.StringFlag{
Name: "home, H",
Usage: "Specify an (alternate) home directory.",
},
cli.StringFlag{
Name: "local-rpc-debug-unsafe",
Usage: "Use to debug local RPC (may leak secrets).",
},
cli.StringFlag{
Name: "log-file",
Usage: "Specify a log file for the keybase service.",
},
cli.StringFlag{
Name: "log-format",
Usage: "Log format (default, plain, file, fancy).",
},
cli.StringFlag{
Name: "merkle-kids",
Usage: "Set of admissable Merkle Tree fingerprints (colon-separated).",
},
cli.BoolFlag{
Name: "no-debug",
Usage: "Suppress debugging mode; takes precedence over --debug.",
},
cli.StringFlag{
Name: "pgpdir, gpgdir",
Usage: "Specify a PGP directory (default is ~/.gnupg).",
},
cli.StringFlag{
Name: "pinentry",
Usage: "Specify a path to find a pinentry program.",
},
cli.StringFlag{
Name: "pid-file",
Usage: "Location of the keybased pid-file (to ensure only one running daemon).",
},
cli.IntFlag{
Name: "proof-cache-size",
Usage: "Number of proof entries to cache.",
},
cli.StringFlag{
Name: "proxy",
Usage: "Specify an HTTP(s) proxy to ship all Web requests over.",
},
cli.BoolFlag{
Name: "push-disabled",
Usage: "Disable push server connection (which is on by default)",
},
cli.IntFlag{
Name: "push-save-interval",
Usage: "Set the interval between saves of the push cache (in seconds)",
},
cli.StringFlag{
//.........这里部分代码省略.........
开发者ID:qbit,项目名称:client,代码行数:101,代码来源:cmdline.go
注:本文中的github.com/keybase/client/go/libkb.VersionString函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论