diff options
| author | Mitch Riedstra <mitch@riedstra.us> | 2021-08-04 23:53:36 -0400 |
|---|---|---|
| committer | Mitch Riedstra <mitch@riedstra.us> | 2021-08-04 23:53:36 -0400 |
| commit | c202f2eca32e1ab2e313417168351df1c58ee062 (patch) | |
| tree | 6540629b337d2d769581baec26096ac0555f71f9 /steam/delete.go | |
| parent | 742938b00222c7ad57ad11eb24850d9202c2503d (diff) | |
| download | steam-export-c202f2eca32e1ab2e313417168351df1c58ee062.tar.gz steam-export-c202f2eca32e1ab2e313417168351df1c58ee062.tar.xz | |
More major changes. Web UI works. Downloading games works. Status works. extractFile needs work
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 +} |
