aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/webserver.scm21
1 files changed, 12 insertions, 9 deletions
diff --git a/web/webserver.scm b/web/webserver.scm
index af27249..60503a4 100644
--- a/web/webserver.scm
+++ b/web/webserver.scm
@@ -35,11 +35,10 @@
(if dot-pos
(substring filename dot-pos) "")))
-(define +current-repo-path+
- (getenv "CURRENT_REPO_PATH"))
-
-(define +bare-repo-path+
- (getenv "CGIT_REPO_PATH"))
+;; Look into moving this into a config file.
+(define +current-repo-path+ (getenv "CURRENT_REPO_PATH"))
+(define +bare-repo-path+ (getenv "CGIT_REPO_PATH"))
+(define +working-branch+ (getenv "GN_GUILE_WORKING_BRANCH"))
(define +info+
`(("name" . "GeneNetwork REST API") ("version" . ,get-version)
@@ -181,7 +180,7 @@ otherwise search for set/group data"
(cons (string->symbol (uri-decode key))
(uri-decode value))))
-(define (edit-file-handler repo request)
+(define (edit-file-handler local-repo working-branch request)
(catch 'file-error
(lambda ()
(let* ((query (uri-query (request-uri request)))
@@ -192,8 +191,12 @@ otherwise search for set/group data"
(query-path (assoc-ref params
'file_path)))
(if query-path
- (build-json-response 200
- (fetch-file repo query-path))
+ (begin
+ (git-invoke local-repo "fetch" "origin" working-branch)
+ (git-invoke local-repo "reset" "--hard"
+ (string-append "origin/" working-branch))
+ (build-json-response 200
+ (fetch-file local-repo query-path)))
(throw 'file-error
"Please provide a valid file path in the query"))))
(lambda (key . args)
@@ -327,7 +330,7 @@ otherwise search for set/group data"
(('GET "species")
(render-json (get-species-meta)))
(('GET "edit")
- (edit-file-handler +current-repo-path+ request))
+ (edit-file-handler +current-repo-path+ +working-branch+ request))
(('POST "commit")
(commit-file-handler +current-repo-path+ request body))
(('GET id)