package main import ( "context" "log" "src.dualinventive.com/go/devsim" "src.dualinventive.com/go/devsim/daemon" "src.dualinventive.com/go/devsim/repository" ) type repositoryServer struct { d *daemon.Daemon } func (r *repositoryServer) Info(req *devsim.RepositoryRequest, rif devsim.RepositoryService_InfoServer) error { var repoList []repository.Repository log.Println("Repo info", req) if req.Uri == "" { repoList = r.d.Repository.List() } else { repo, err := r.d.Repository.Find(req.Uri) if err != nil { return err } repoList = append(repoList, repo) } for _, repo := range repoList { versions, err := repo.Versions() if err != nil { return err } err = rif.Send(&devsim.RepositoryInfo{Versions: versions, Uri: repo.URI()}) if err != nil { log.Println(err) return err } } return nil } func (r *repositoryServer) Create(ctx context.Context, req *devsim.RepositoryRequest) (*devsim.RepositoryInfo, error) { log.Println("Create repo", req) err := r.d.Repository.Add(req.Uri) return &devsim.RepositoryInfo{}, err } func (r *repositoryServer) Remove(ctx context.Context, req *devsim.RepositoryRequest) (*devsim.Empty, error) { log.Println("Remove repo", req) err := r.d.Repository.Remove(req.Uri) return &devsim.Empty{}, err }