grim/hgkeeper
Clone
Summary
Browse
Changes
Graph
Add support for specifying which mercurial executable to use
13 months ago, Gary Kramlich
8275959b76f0
Add support for specifying which mercurial executable to use
package
main
import
(
"os"
"github.com/alecthomas/kong"
log
"github.com/sirupsen/logrus"
"keep.imfreedom.org/grim/hgkeeper/authorized_keys"
"keep.imfreedom.org/grim/hgkeeper/globals"
"keep.imfreedom.org/grim/hgkeeper/hg"
"keep.imfreedom.org/grim/hgkeeper/once"
"keep.imfreedom.org/grim/hgkeeper/serve"
"keep.imfreedom.org/grim/hgkeeper/setup"
"keep.imfreedom.org/grim/hgkeeper/version"
)
type
commands
struct
{
globals
.
Globals
AuthorizedKeys
authorized_keys
.
Command
`kong:"cmd,help='output an sshd authorized keys file'"`
Once
once
.
Command
`kong:"cmd,help='run hgkeeper for one transaction. This is used when integrating with a system ssh server'"`
Serve
serve
.
Command
`kong:"cmd,help='run the ssh server'"`
Setup
setup
.
Command
`kong:"cmd,help='inital setup for the server'"`
Version
version
.
Command
`kong:"cmd,help='display the version and exit'"`
}
func
init
()
{
log
.
SetOutput
(
os
.
Stdout
)
log
.
SetLevel
(
log
.
DebugLevel
)
fmter
:=
&
log
.
TextFormatter
{
FullTimestamp
:
true
,
}
switch
os
.
Getenv
(
"TERM"
)
{
case
"win"
:
fallthrough
case
"dumb"
:
fmter
.
DisableColors
=
true
}
log
.
SetFormatter
(
fmter
)
}
func
main
()
{
cmd
:=
commands
{}
ctx
:=
kong
.
Parse
(
&
cmd
)
if
err
:=
hg
.
SetExe
(
cmd
.
Globals
.
HgExecutable
);
err
!=
nil
{
ctx
.
FatalIfErrorf
(
err
)
}
if
err
:=
ctx
.
Run
(
&
cmd
.
Globals
);
err
!=
nil
{
ctx
.
FatalIfErrorf
(
err
)
}
}