aboutsummaryrefslogtreecommitdiff
path: root/steam/delete.go
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2021-08-04 23:53:36 -0400
committerMitch Riedstra <mitch@riedstra.us>2021-08-04 23:53:36 -0400
commitc202f2eca32e1ab2e313417168351df1c58ee062 (patch)
tree6540629b337d2d769581baec26096ac0555f71f9 /steam/delete.go
parent742938b00222c7ad57ad11eb24850d9202c2503d (diff)
downloadsteam-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.go41
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
+}