From b756806ee99f28c4fa6ff824037f92800af4bf72 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kim=20Carlb=C3=A4cker?= <kim.carlbacker@gmail.com>
Date: Thu, 11 Aug 2016 05:08:09 +0200
Subject: [PATCH] Add "support" for git-daemon-export-ok (#2940) (#3046)

* add git-daemon-export-ok "support"

* Slight fix to git-daemon-export-ok

* Add error-checking for git-demon-export-ok

* Remove old comments and fixed logging-issues

* Check if git-daemon-export-ok exists or not
---
 models/repo.go | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/models/repo.go b/models/repo.go
index 822ad1d9ca..2902dc84a5 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -1268,6 +1268,20 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e
 			}
 		}
 
+		// Create/Remove git-daemon-export-ok for git-daemon...
+		daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`)
+		if repo.IsPrivate && com.IsExist(daemonExportFile) {
+			if err = os.Remove(daemonExportFile); err != nil {
+				log.Error(4, "Failed to remove %s: %v", daemonExportFile, err)
+			}
+		} else if !repo.IsPrivate && !com.IsExist(daemonExportFile) {
+			if f, err := os.Create(daemonExportFile); err != nil {
+				log.Error(4, "Failed to create %s: %v", daemonExportFile, err)
+			} else {
+				f.Close()
+			}
+		}
+
 		forkRepos, err := getRepositoriesByForkID(e, repo.ID)
 		if err != nil {
 			return fmt.Errorf("getRepositoriesByForkID: %v", err)