File tree Expand file tree Collapse file tree 10 files changed +30
-14
lines changed Expand file tree Collapse file tree 10 files changed +30
-14
lines changed Original file line number Diff line number Diff line change 1+ kind : Added
2+ body : Windows support.
3+ time : 2024-09-07T16:16:36.18073-07:00
Original file line number Diff line number Diff line change 1+ # Don't magically change line endings by default,
2+ # but always use LF in test scripts.
3+ #
4+ # Ref:
5+ # - https://github.com/golang/go/blob/807e01db4840e25e4d98911b28a8fa54244b8dfa/.gitattributes
6+ # - https://github.com/rogpeppe/go-internal/pull/106
7+ * - text
8+ * .txt text eol =lf
9+
110* .png filter =lfs diff =lfs merge =lfs - text
Original file line number Diff line number Diff line change 4040 name : Test (${{ matrix.os}})
4141 strategy :
4242 matrix :
43- os : ["ubuntu-latest"] # TODO: [ "windows-latest"]
43+ os : ["ubuntu-latest", "windows-latest"]
4444 steps :
4545 - uses : actions/checkout@v4
4646 - name : Set up Go
Original file line number Diff line number Diff line change @@ -6,13 +6,15 @@ builds:
66 - CGO_ENABLED=0
77 main : .
88 binary : gs
9- goos : [darwin, linux]
9+ goos : [darwin, linux, windows ]
1010 goarch : [amd64, arm64, arm]
1111 goarm : [5, 6, 7]
1212 ldflags : ' -s -w -X main._version={{.Version}}'
1313 ignore :
1414 - goos : darwin
1515 goarch : arm
16+ - goos : windows
17+ goarch : arm
1618 flags :
1719 - -trimpath
1820
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ require (
99 github.com/charmbracelet/bubbletea v1.1.0
1010 github.com/charmbracelet/lipgloss v0.13.0
1111 github.com/charmbracelet/log v0.4.0
12- github.com/creack/pty v1.1.23
12+ github.com/creack/pty/v2 v2.0.0-20231028221118-e9c1f000f465
1313 github.com/dustin/go-humanize v1.0.1
1414 github.com/mattn/go-isatty v0.0.20
1515 github.com/rogpeppe/go-internal v1.12.0
Original file line number Diff line number Diff line change @@ -24,8 +24,8 @@ github.com/charmbracelet/x/ansi v0.2.3 h1:VfFN0NUpcjBRd4DnKfRaIRo53KRgey/nhOoEqo
2424github.com/charmbracelet/x/ansi v0.2.3 /go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw =
2525github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0 =
2626github.com/charmbracelet/x/term v0.2.0 /go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0 =
27- github.com/creack/pty v1.1.23 h1:4M6+isWdcStXEf15G/RbrMPOQj1dZ7HPZCGwE4kOeP0 =
28- github.com/creack/pty v1.1.23 /go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE =
27+ github.com/creack/pty/v2 v2.0.0-20231028221118-e9c1f000f465 h1:KQ+iWxxc2qYyfK3GGrjNJ73GvDAd9Ecz8pK4FpdtI6Y =
28+ github.com/creack/pty/v2 v2.0.0-20231028221118-e9c1f000f465 /go.mod h1:zTYJ0iXAFhiKeguJdMR/LEecltLOG5Wz3lo1lIi0CLU =
2929github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE =
3030github.com/danieljoos/wincred v1.2.0 /go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec =
3131github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c =
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ func DefaultConfig() Config {
1111 return Config {
1212 "init.defaultBranch" : "main" ,
1313 "alias.graph" : "log --graph --decorate --oneline" ,
14+ "core.autocrlf" : "false" ,
1415 }
1516}
1617
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ import (
1717 "sync"
1818 "time"
1919
20- "github.com/creack/pty"
20+ "github.com/creack/pty/v2 "
2121 "github.com/vito/midterm"
2222)
2323
@@ -254,14 +254,14 @@ func WithTerm() (exitCode int) {
254254type terminalEmulator struct {
255255 mu sync.Mutex
256256 cmd * exec.Cmd
257- pty * os. File
257+ pty pty. Pty
258258 logf func (string , ... any )
259259
260260 term * midterm.Terminal
261261}
262262
263263func newVT100Emulator (
264- f * os. File ,
264+ f pty. Pty ,
265265 cmd * exec.Cmd ,
266266 rows , cols int ,
267267 autoResize bool ,
@@ -317,19 +317,19 @@ func (m *terminalEmulator) Close() error {
317317 select {
318318 case waitErr = <- waitErrc :
319319 // ok
320- case <- time .After (3 * time .Second ):
320+ case <- time .After (5 * time .Second ):
321321 waitErr = fmt .Errorf ("timeout waiting for %v" , m .cmd )
322322 _ = m .cmd .Process .Kill ()
323323 }
324324
325- closeErr := m .pty .Close ()
326-
327- return errors .Join (waitErr , closeErr , writeErr )
325+ // On Windows, pty.Close may fail with invalid handle or access denied.
326+ // It's not really a problem, so we ignore the error.
327+ _ = m .pty .Close ()
328+ return errors .Join (waitErr , writeErr )
328329}
329330
330331func (m * terminalEmulator ) FeedKeys (s string ) error {
331332 _ , err := io .WriteString (m .pty , s )
332- _ = m .pty .Sync ()
333333 return err
334334}
335335
Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ gs auth login --forge=shamhub
4141cmp stderr $WORK/golden/login-secure.stderr
4242
4343-- golden/login.stderr --
44- WRN Storing secrets in plain text at $WORK/ home/ .config/ git-spice/ secrets.json. Be careful!
44+ WRN Storing secrets in plain text at $WORK${/} home${/} .config${/} git-spice${/} secrets.json. Be careful!
4545INF shamhub: successfully logged in
4646-- golden/login-secure.stderr --
4747INF shamhub: successfully logged in
Original file line number Diff line number Diff line change @@ -36,6 +36,7 @@ Contents of feature1
3636await Please select a remote
3737snapshot dialog
3838feed \r
39+ await
3940
4041-- golden/prompt.txt --
4142### dialog ###
You can’t perform that action at this time.
0 commit comments