Skip to content

Commit 1e8a837

Browse files
committed
initial round of PR feedback
1 parent 2cc91c2 commit 1e8a837

File tree

3 files changed

+23
-29
lines changed

3 files changed

+23
-29
lines changed

cmd/ghcs/create.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func create(opts *createOptions) error {
108108
func showStatus(ctx context.Context, log *output.Logger, apiClient *api.API, user *api.User, codespace *api.Codespace) error {
109109
states, err := codespaces.PollPostCreateStates(ctx, log, apiClient, user, codespace)
110110
if err != nil {
111-
return fmt.Errorf("poll post create states: %v", err)
111+
return fmt.Errorf("failed to subscribe to state changes from codespace: %v", err)
112112
}
113113

114114
var lastState codespaces.PostCreateState
@@ -135,27 +135,28 @@ func showStatus(ctx context.Context, log *output.Logger, apiClient *api.API, use
135135
lastState = state
136136
log.Print("...")
137137
break
138-
} else {
139-
finishedStates[state.Name] = true
140-
log.Println("..." + state.Status)
141138
}
139+
140+
finishedStates[state.Name] = true
141+
log.Println("..." + state.Status)
142142
} else {
143143
if state.Status == codespaces.PostCreateStateRunning {
144144
inProgress = true
145145
log.Print(".")
146146
break
147-
} else {
148-
finishedStates[state.Name] = true
149-
log.Println(state.Status)
150-
lastState = codespaces.PostCreateState{} // reset the value
151147
}
148+
149+
finishedStates[state.Name] = true
150+
log.Println(state.Status)
151+
lastState = codespaces.PostCreateState{} // reset the value
152152
}
153153
}
154154

155-
if !inProgress && !breakNextState {
155+
if !inProgress {
156+
if breakNextState {
157+
break
158+
}
156159
breakNextState = true
157-
} else if !inProgress && breakNextState {
158-
break
159160
}
160161
}
161162

internal/codespaces/codespaces.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,12 @@ type logger interface {
6262
Println(v ...interface{}) (int, error)
6363
}
6464

65-
// TODO(josebalius): we should move some of this to the liveshare.Connection struct
6665
func connectionReady(codespace *api.Codespace) bool {
67-
ready := codespace.Environment.Connection.SessionID != ""
68-
ready = ready && codespace.Environment.Connection.SessionToken != ""
69-
ready = ready && codespace.Environment.Connection.RelayEndpoint != ""
70-
ready = ready && codespace.Environment.Connection.RelaySAS != ""
71-
ready = ready && codespace.Environment.State == api.CodespaceEnvironmentStateAvailable
72-
return ready
66+
return codespace.Environment.Connection.SessionID != "" &&
67+
codespace.Environment.Connection.SessionToken != "" &&
68+
codespace.Environment.Connection.RelayEndpoint != "" &&
69+
codespace.Environment.Connection.RelaySAS != "" &&
70+
codespace.Environment.State == api.CodespaceEnvironmentStateAvailable
7371
}
7472

7573
func ConnectToLiveshare(ctx context.Context, log logger, apiClient *api.API, userLogin, token string, codespace *api.Codespace) (client *liveshare.Client, err error) {
@@ -82,8 +80,7 @@ func ConnectToLiveshare(ctx context.Context, log logger, apiClient *api.API, use
8280
}
8381
}
8482

85-
retries := 0
86-
for !connectionReady(codespace) {
83+
for retries := 0; !connectionReady(codespace); retries++ {
8784
if retries > 1 {
8885
if retries%2 == 0 {
8986
log.Print(".")
@@ -100,8 +97,6 @@ func ConnectToLiveshare(ctx context.Context, log logger, apiClient *api.API, use
10097
if err != nil {
10198
return nil, fmt.Errorf("error getting codespace: %v", err)
10299
}
103-
104-
retries += 1
105100
}
106101

107102
if startedCodespace {

internal/codespaces/states.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@ const (
2424
)
2525

2626
type PostCreateStatesResult struct {
27-
PostCreateStates PostCreateStates
27+
PostCreateStates []PostCreateState
2828
Err error
2929
}
3030

31-
type PostCreateStates []PostCreateState
32-
3331
type PostCreateState struct {
3432
Name string `json:"name"`
3533
Status PostCreateStateStatus `json:"status"`
@@ -81,7 +79,7 @@ func PollPostCreateStates(ctx context.Context, log logger, apiClient *api.API, u
8179
return pollch, nil
8280
}
8381

84-
func getPostCreateOutput(ctx context.Context, tunnelPort int, codespace *api.Codespace) (PostCreateStates, error) {
82+
func getPostCreateOutput(ctx context.Context, tunnelPort int, codespace *api.Codespace) ([]PostCreateState, error) {
8583
stdout, err := RunCommand(
8684
ctx, tunnelPort, sshDestination(codespace),
8785
"cat /workspaces/.codespaces/shared/postCreateOutput.json",
@@ -95,9 +93,9 @@ func getPostCreateOutput(ctx context.Context, tunnelPort int, codespace *api.Cod
9593
return nil, fmt.Errorf("read output: %v", err)
9694
}
9795

98-
output := struct {
99-
Steps PostCreateStates `json:"steps"`
100-
}{}
96+
var output struct {
97+
Steps []PostCreateState `json:"steps"`
98+
}
10199
if err := json.Unmarshal(b, &output); err != nil {
102100
return nil, fmt.Errorf("unmarshal output: %v", err)
103101
}

0 commit comments

Comments
 (0)