@@ -43,15 +43,33 @@ var (
4343// ensureRepo checks for the bookmarks repository and creates it with
4444// some default content when missing.
4545func ensureRepo (ctx context.Context , p Provider , user string , token * oauth2.Token ) error {
46- if err := p .CreateBookmarks (ctx , user , token , "main" , defaultBookmarks ); err != nil {
47- if errors .Is (err , ErrRepoNotFound ) {
48- if err := p .CreateRepo (ctx , user , token , RepoName ); err != nil {
49- return err
50- }
51- return p .CreateBookmarks (ctx , user , token , "main" , defaultBookmarks )
46+ log .Printf ("checking repo for %s" , user )
47+
48+ exists , err := p .RepoExists (ctx , user , token , RepoName )
49+ if err != nil {
50+ log .Printf ("repo check error: %v" , err )
51+ return err
52+ }
53+ if ! exists {
54+ log .Printf ("creating repo %s for %s" , RepoName , user )
55+ if err := p .CreateRepo (ctx , user , token , RepoName ); err != nil {
56+ log .Printf ("create repo: %v" , err )
57+ return err
5258 }
59+ }
60+
61+ b , _ , err := p .GetBookmarks (ctx , user , "" , token )
62+ if err != nil {
63+ log .Printf ("get bookmarks: %v" , err )
5364 return err
5465 }
66+ if b == "" {
67+ log .Printf ("creating initial bookmarks for %s" , user )
68+ if err := p .CreateBookmarks (ctx , user , token , "main" , defaultBookmarks ); err != nil {
69+ log .Printf ("create bookmarks: %v" , err )
70+ return err
71+ }
72+ }
5573 return nil
5674}
5775
0 commit comments