blob: eb70a50f470ecd350939cc6a1036c418b2a6d7ad (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package steam
import (
"os"
"path/filepath"
"sync"
"riedstra.dev/mitch/steam-export/tasks"
)
type DeleteJob struct {
delFunc tasks.TaskFunc
m sync.Mutex
}
func newDeleteJob(f delFunc) {
}
func (l *Library) Delete(game string) error {
l.status.Add("")
}
// Delete removes all 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)
if l.status.otherThanCurrent(j) {
j.addError(E_OperationConflict)
return E_OperationConflict
}
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
}
|