diff options
Diffstat (limited to 'steam/delete.go')
| -rw-r--r-- | steam/delete.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/steam/delete.go b/steam/delete.go new file mode 100644 index 0000000..486b047 --- /dev/null +++ b/steam/delete.go @@ -0,0 +1,41 @@ +package steam + +import ( + "os" + "path/filepath" +) + +// Delete removes all of the game files and the ACF +func (l *Library) Delete(game string) error { + g, ok := l.games[game] + if !ok { + return E_GameDoesNotExist + } + + j := newJob("delete", g) + defer j.done() + + l.status.addJob(j) + + acf, err := FindACF(l.folder, game) + if err != nil { + j.addError(err) + return err + } + if err := os.Remove(acf); err != nil { + j.addError(err) + return err + } + + err = os.RemoveAll(filepath.Join(l.folder, "common", g.Name)) + if err != nil { + j.addError(err) + return err + } + + l.m.Lock() + delete(l.games, game) + l.m.Unlock() + + return nil +} |
