mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-02-09 00:31:26 +01:00
fix session:purge
This commit is contained in:
parent
c7289556e5
commit
b92c160333
@ -1124,13 +1124,18 @@ func PurgeScreen(ctx context.Context, screenId string, sessionDel bool) (UpdateP
|
||||
tx.Exec(query, screenId)
|
||||
query = `DELETE FROM line WHERE screenid = ?`
|
||||
tx.Exec(query, screenId)
|
||||
query = `DELETE FROM cmd WHERE screenid = ?`
|
||||
tx.Exec(query, screenId)
|
||||
insertScreenDelUpdate(tx, screenId)
|
||||
return nil
|
||||
})
|
||||
if txErr != nil {
|
||||
return nil, txErr
|
||||
}
|
||||
go cleanScreenCmds(context.Background(), screenId)
|
||||
delErr := DeleteScreenDir(ctx, screenId)
|
||||
if delErr != nil {
|
||||
log.Printf("error removing screendir")
|
||||
}
|
||||
if sessionDel {
|
||||
return nil, nil
|
||||
}
|
||||
@ -1491,7 +1496,7 @@ func PurgeSession(ctx context.Context, sessionId string) (UpdatePacket, error) {
|
||||
query = `SELECT screenid FROM screen WHERE sessionid = ?`
|
||||
screenIds = tx.SelectStrings(query, sessionId)
|
||||
for _, screenId := range screenIds {
|
||||
_, err := PurgeScreen(ctx, screenId, true)
|
||||
_, err := PurgeScreen(tx.Context(), screenId, true)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error purging screen[%s]: %v", screenId, err)
|
||||
}
|
||||
@ -1504,16 +1509,10 @@ func PurgeSession(ctx context.Context, sessionId string) (UpdatePacket, error) {
|
||||
if txErr != nil {
|
||||
return nil, txErr
|
||||
}
|
||||
delErr := DeleteSessionDir(ctx, sessionId)
|
||||
update := ModelUpdate{}
|
||||
if newActiveSessionId != "" {
|
||||
update.ActiveSessionId = newActiveSessionId
|
||||
}
|
||||
if delErr != nil {
|
||||
update.Info = &InfoMsgType{
|
||||
InfoMsg: fmt.Sprintf("error removing session files: %v", delErr),
|
||||
}
|
||||
}
|
||||
update.Sessions = append(update.Sessions, &SessionType{SessionId: sessionId, Remove: true})
|
||||
for _, screenId := range screenIds {
|
||||
update.Screens = append(update.Screens, &ScreenType{ScreenId: screenId, Remove: true})
|
||||
|
@ -168,15 +168,6 @@ func DeletePtyOutFile(ctx context.Context, screenId string, cmdId string) error
|
||||
return os.Remove(ptyOutFileName)
|
||||
}
|
||||
|
||||
func DeleteSessionDir(ctx context.Context, sessionId string) error {
|
||||
sessionDir, err := scbase.EnsureSessionDir(sessionId)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting sessiondir: %w", err)
|
||||
}
|
||||
fmt.Printf("remove-all %s\n", sessionDir)
|
||||
return os.RemoveAll(sessionDir)
|
||||
}
|
||||
|
||||
func DeleteScreenDir(ctx context.Context, screenId string) error {
|
||||
screenDir, err := scbase.EnsureScreenDir(screenId)
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user