Jelajahi Sumber

[GinS] Added indexing to the serv command

cgars 7 tahun lalu
induk
melakukan
ff12621078
3 mengubah file dengan 27 tambahan dan 2 penghapusan
  1. 23 0
      cmd/serv.go
  2. 4 0
      conf/app.ini
  3. 0 2
      pkg/setting/setting.go

+ 23 - 0
cmd/serv.go

@@ -21,6 +21,9 @@ import (
 	"github.com/G-Node/gogs/pkg/setting"
 	http "github.com/G-Node/gogs/routes/repo"
 	"syscall"
+	"encoding/json"
+	http2 "net/http"
+	"bytes"
 )
 
 const (
@@ -273,10 +276,30 @@ func runServ(c *cli.Context) error {
 		cmd = []string{verb, repoFullName}
 	}
 	runGit(cmd, requestMode, user, owner, repo)
+	if setting.Search.Do && (requestMode == models.ACCESS_MODE_WRITE) {
+		startIndexing(user, owner, repo)
+	}
 	return nil
 
 }
 
+func startIndexing(user, owner *models.User, repo *models.Repository) {
+	var ireq struct{ RepoID, RepoPath string }
+	ireq.RepoID = fmt.Sprintf("%d", repo.ID)
+	ireq.RepoPath = repo.RepoPath()
+	data, err := json.Marshal(ireq)
+	if err != nil {
+		log.Trace("could not marshal index request :%+v", err)
+		return
+	}
+	req, _ := http2.NewRequest(http2.MethodPost, setting.Search.IndexUrl, bytes.NewReader(data))
+	resp, err := http2.Client{}.Do(req)
+	if err != nil || resp.StatusCode != http2.StatusOK {
+		log.Trace("Error doing index request:%+v,%d", err, resp.StatusCode)
+		return
+	}
+}
+
 func runGit(cmd []string, requestMode models.AccessMode, user *models.User, owner *models.User,
 	repo *models.Repository) error {
 	log.Info("will exectute:%s", cmd)

+ 4 - 0
conf/app.ini

@@ -491,6 +491,10 @@ ko-KR = ko
 gl-ES = gl
 uk-UA = uk
 
+[search]
+DO = false
+INDEX_URL = localhost/search
+
 ; Extension mapping to highlight class
 ; e.g. .toml=ini
 [highlight.mapping]

+ 0 - 2
pkg/setting/setting.go

@@ -668,8 +668,6 @@ func NewContext() {
 		log.Fatal(2, "Fail to map API settings: %v", err)
 	} else if err = Cfg.Section("ui").MapTo(&UI); err != nil {
 		log.Fatal(2, "Fail to map UI settings: %v", err)
-	} else if err = Cfg.Section("search").MapTo(&Search); err != nil {
-		log.Fatal(2, "Fail to map Serch settings: %v", err)
 	}
 
 	if Mirror.DefaultInterval <= 0 {