Skip to content

Commit a484643

Browse files
committed
delete: delete all content for a route
Update 'start' to check to see if the content was deleted.
1 parent df50237 commit a484643

File tree

3 files changed

+54
-2
lines changed

3 files changed

+54
-2
lines changed

cmd/git-bundle-server/delete.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package main
2+
3+
import (
4+
"errors"
5+
"os"
6+
7+
"github.com/github/git-bundle-server/internal/core"
8+
)
9+
10+
type Delete struct{}
11+
12+
func (Delete) subcommand() string {
13+
return "delete"
14+
}
15+
16+
func (Delete) run(args []string) error {
17+
if len(args) < 1 {
18+
return errors.New("usage: git-bundle-server delete <route>")
19+
}
20+
21+
route := args[0]
22+
23+
repo, err := core.CreateRepository(route)
24+
if err != nil {
25+
return err
26+
}
27+
28+
err = core.RemoveRoute(route)
29+
if err != nil {
30+
return err
31+
}
32+
33+
err = os.RemoveAll(repo.WebDir)
34+
if err != nil {
35+
return err
36+
}
37+
38+
err = os.RemoveAll(repo.RepoDir)
39+
if err != nil {
40+
return err
41+
}
42+
43+
return nil
44+
}

cmd/git-bundle-server/start.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package main
22

33
import (
44
"errors"
5+
"fmt"
6+
"os"
57

68
"github.com/github/git-bundle-server/internal/core"
79
)
@@ -19,12 +21,17 @@ func (Start) run(args []string) error {
1921

2022
route := args[0]
2123

22-
// CreateRepository re-reigsters the route.
23-
_, err := core.CreateRepository(route)
24+
// CreateRepository registers the route.
25+
repo, err := core.CreateRepository(route)
2426
if err != nil {
2527
return err
2628
}
2729

30+
_, err = os.ReadDir(repo.RepoDir)
31+
if err != nil {
32+
return fmt.Errorf("route '%s' appears to have been deleted; use 'init' instead", route)
33+
}
34+
2835
// Make sure we have the global schedule running.
2936
SetCronSchedule()
3037

cmd/git-bundle-server/subcommand.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ type Subcommand interface {
77

88
func all() []Subcommand {
99
return []Subcommand{
10+
Delete{},
1011
Init{},
1112
Start{},
1213
Stop{},

0 commit comments

Comments
 (0)