repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
9bd9552
parent
2d86e16
author
Antonio Mika
date
2025-02-24 22:58:05 -0500 EST
Fix rsync deletes
2 files changed,  +31, -12
M pgs/db/memory.go
+22, -11
 1@@ -46,11 +46,11 @@ func (me *MemoryDB) SetupTestData() {
 2 	me.Feature = feature
 3 }
 4 
 5-var notImpl = fmt.Errorf("not implemented")
 6+var errNotImpl = fmt.Errorf("not implemented")
 7 
 8 func (me *MemoryDB) FindUsers() ([]*db.User, error) {
 9 	users := []*db.User{}
10-	return users, notImpl
11+	return users, errNotImpl
12 }
13 
14 func (me *MemoryDB) FindUserByPubkey(key string) (*db.User, error) {
15@@ -89,22 +89,33 @@ func (me *MemoryDB) Close() error {
16 }
17 
18 func (me *MemoryDB) FindTotalSizeForUser(userID string) (int, error) {
19-	return 0, notImpl
20+	return 0, errNotImpl
21 }
22 
23 func (me *MemoryDB) InsertProject(userID, name, projectDir string) (string, error) {
24 	id := uuid.NewString()
25+	now := time.Now()
26 	me.Projects = append(me.Projects, &db.Project{
27 		ID:         id,
28 		UserID:     userID,
29 		Name:       name,
30 		ProjectDir: projectDir,
31+		CreatedAt:  &now,
32+		UpdatedAt:  &now,
33 	})
34 	return id, nil
35 }
36 
37 func (me *MemoryDB) UpdateProject(userID, name string) error {
38-	return notImpl
39+	project, err := me.FindProjectByName(userID, name)
40+	if err != nil {
41+		return err
42+	}
43+
44+	now := time.Now()
45+	project.UpdatedAt = &now
46+
47+	return nil
48 }
49 
50 func (me *MemoryDB) UpsertProject(userID, projectName, projectDir string) (*db.Project, error) {
51@@ -128,11 +139,11 @@ func (me *MemoryDB) UpsertProject(userID, projectName, projectDir string) (*db.P
52 }
53 
54 func (me *MemoryDB) LinkToProject(userID, projectID, projectDir string, commit bool) error {
55-	return notImpl
56+	return errNotImpl
57 }
58 
59 func (me *MemoryDB) RemoveProject(projectID string) error {
60-	return notImpl
61+	return errNotImpl
62 }
63 
64 func (me *MemoryDB) FindProjectByName(userID, name string) (*db.Project, error) {
65@@ -151,21 +162,21 @@ func (me *MemoryDB) FindProjectByName(userID, name string) (*db.Project, error)
66 }
67 
68 func (me *MemoryDB) FindProjectLinks(userID, name string) ([]*db.Project, error) {
69-	return []*db.Project{}, notImpl
70+	return []*db.Project{}, errNotImpl
71 }
72 
73 func (me *MemoryDB) FindProjectsByPrefix(userID, prefix string) ([]*db.Project, error) {
74-	return []*db.Project{}, notImpl
75+	return []*db.Project{}, errNotImpl
76 }
77 
78 func (me *MemoryDB) FindProjectsByUser(userID string) ([]*db.Project, error) {
79-	return []*db.Project{}, notImpl
80+	return []*db.Project{}, errNotImpl
81 }
82 
83 func (me *MemoryDB) FindProjects(userID string) ([]*db.Project, error) {
84-	return []*db.Project{}, notImpl
85+	return []*db.Project{}, errNotImpl
86 }
87 
88 func (me *MemoryDB) UpdateProjectAcl(userID, name string, acl db.ProjectAcl) error {
89-	return notImpl
90+	return errNotImpl
91 }
M pgs/ssh_test.go
+9, -1
 1@@ -209,7 +209,7 @@ func TestSshServerRsync(t *testing.T) {
 2 	os.Remove(aboutFile)
 3 
 4 	// copy files with delete
 5-	delCmd := exec.Command("rsync", "-rv", "-e", eCmd, name+"/", "localhost:/test")
 6+	delCmd := exec.Command("rsync", "-rv", "--delete", "-e", eCmd, name+"/", "localhost:/test")
 7 	result, err = delCmd.CombinedOutput()
 8 	if err != nil {
 9 		fmt.Println(string(result), err)
10@@ -217,6 +217,14 @@ func TestSshServerRsync(t *testing.T) {
11 		return
12 	}
13 
14+	// check it's not there
15+	_, err = client.Lstat("/test/about.html")
16+	if err == nil {
17+		cfg.Logger.Error("file still exists")
18+		t.Error("about.html found")
19+		return
20+	}
21+
22 	close(done)
23 
24 	p, err := os.FindProcess(os.Getpid())