Skip to content
This repository was archived by the owner on Jun 5, 2018. It is now read-only.

Commit af677a9

Browse files
committed
Upgrade from Github
1 parent 4924a04 commit af677a9

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

build.sh

+6-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,12 @@ pkg() {
1313

1414
mkdir -p "$dst"
1515
cp README.md LICENSE "$dst"
16-
go build -o "$dst/psmcli" -ldflags "-w -X main.Version $version"
16+
go build -o "$dst/psmcli" -ldflags "-w -X main.Version=$version"
17+
18+
if [[ -f ~/signingkeys/calmh.priv ]] ; then
19+
[ -f $dst/psmcli ] && stsigtool sign ~/signingkeys/calmh.priv "$dst/psmcli" > "$dst/psmcli.sig"
20+
[ -f $dst/psmcli.exe ] && stsigtool sign ~/signingkeys/calmh.priv "$dst/psmcli.exe" > "$dst/psmcli.exe.sig"
21+
fi
1722

1823
if [[ "$GOOS" == "windows" ]] ; then
1924
pushd build

main.go

+36-1
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,56 @@ import (
99
"fmt"
1010
"net"
1111
"os"
12+
"regexp"
13+
"runtime"
1214
"strings"
1315

1416
"github.com/calmh/psmcli/completion"
17+
"github.com/calmh/upgrade"
1518
"golang.org/x/crypto/ssh/terminal"
1619
)
1720

1821
var (
19-
Version = "unknown-dev"
22+
Version = "unknown-dev"
23+
signingKey = []byte(`-----BEGIN EC PUBLIC KEY-----
24+
MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBYyrh+aRcAmqSAReHq00XgaJC5Zn3
25+
JC/rlXAM5M2ODmMElLypAtnmUYFJTnmQD1KSwV49GFwFy+iqzNa9AfQ4gQQB+RmV
26+
Q2n12crDe2nU9oI0aPZFkIlqrjA0Ky0jT8rpWhmuRc+Bq8XS4q8mY32RFSaceLXo
27+
N62RXYtkeHL+D41Ct+I=
28+
-----END EC PUBLIC KEY-----`)
2029
)
2130

2231
func main() {
2332
verbose := flag.Bool("v", false, "Verbose output")
33+
doUpgrade := flag.Bool("upgrade", false, "Upgrade to latest version")
2434
flag.Usage = usage
2535
flag.Parse()
2636
dst := flag.Arg(0)
2737

38+
if *doUpgrade {
39+
rels, err := upgrade.GithubReleases("calmh/psmcli", Version, true, false)
40+
if err != nil {
41+
fmt.Println(err)
42+
os.Exit(1)
43+
}
44+
45+
exp := regexp.MustCompile("-" + runtime.GOOS + "-" + runtime.GOARCH)
46+
for _, rel := range rels {
47+
assets := upgrade.MatchingAssets(exp, rel)
48+
if len(assets) == 1 {
49+
fmt.Println("Trying", assets[0].Name, "...")
50+
err = upgrade.ToURL(assets[0].URL, signingKey)
51+
if err == nil {
52+
fmt.Println("Upgraded")
53+
return
54+
}
55+
fmt.Println(err)
56+
}
57+
}
58+
59+
os.Exit(1)
60+
}
61+
2862
if dst == "" {
2963
usage()
3064
os.Exit(2)
@@ -226,6 +260,7 @@ func usage() {
226260
fmt.Println()
227261
fmt.Println("Usage:")
228262
fmt.Println(" psmcli [-v] <host:port>")
263+
fmt.Println(" psmcli -upgrade")
229264
}
230265

231266
func printResponse(res response) {

0 commit comments

Comments
 (0)