@@ -1152,16 +1152,6 @@ func CreateRepository(ctx DBContext, doer, u *User, repo *Repository, overwriteO
11521152 return fmt .Errorf ("recalculateAccesses: %v" , err )
11531153 }
11541154
1155- if u .Visibility == api .VisibleTypePublic && ! repo .IsPrivate {
1156- // Create/Remove git-daemon-export-ok for git-daemon...
1157- daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1158- if f , err := os .Create (daemonExportFile ); err != nil {
1159- log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1160- } else {
1161- f .Close ()
1162- }
1163- }
1164-
11651155 if setting .Service .AutoWatchNewRepos {
11661156 if err = watchRepo (ctx .e , doer .ID , repo .ID , true ); err != nil {
11671157 return fmt .Errorf ("watchRepo: %v" , err )
@@ -1175,6 +1165,46 @@ func CreateRepository(ctx DBContext, doer, u *User, repo *Repository, overwriteO
11751165 return nil
11761166}
11771167
1168+ // CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...
1169+ func (repo * Repository ) CheckDaemonExportOK () error {
1170+ return repo .checkDaemonExportOK (x )
1171+ }
1172+
1173+ // CheckDaemonExportOKCtx creates/removes git-daemon-export-ok for git-daemon...
1174+ func (repo * Repository ) CheckDaemonExportOKCtx (ctx DBContext ) error {
1175+ return repo .checkDaemonExportOK (ctx .e )
1176+ }
1177+
1178+ func (repo * Repository ) checkDaemonExportOK (e Engine ) error {
1179+ if err := repo .getOwner (e ); err != nil {
1180+ return err
1181+ }
1182+
1183+ // Create/Remove git-daemon-export-ok for git-daemon...
1184+ daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1185+
1186+ isExist , err := util .IsExist (daemonExportFile )
1187+ if err != nil {
1188+ log .Error ("Unable to check if %s exists. Error: %v" , daemonExportFile , err )
1189+ return err
1190+ }
1191+
1192+ isPublic := ! repo .IsPrivate && repo .Owner .Visibility == api .VisibleTypePublic
1193+ if ! isPublic && isExist {
1194+ if err = util .Remove (daemonExportFile ); err != nil {
1195+ log .Error ("Failed to remove %s: %v" , daemonExportFile , err )
1196+ }
1197+ } else if isPublic && ! isExist {
1198+ if f , err := os .Create (daemonExportFile ); err != nil {
1199+ log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1200+ } else {
1201+ f .Close ()
1202+ }
1203+ }
1204+
1205+ return nil
1206+ }
1207+
11781208func countRepositories (userID int64 , private bool ) int64 {
11791209 sess := x .Where ("id > 0" )
11801210
@@ -1324,24 +1354,9 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e
13241354 }
13251355
13261356 // Create/Remove git-daemon-export-ok for git-daemon...
1327- daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1328- isExist , err := util .IsExist (daemonExportFile )
1329- isPublic := ! repo .IsPrivate && repo .Owner .Visibility == api .VisibleTypePublic
1330- if err != nil {
1331- log .Error ("Unable to check if %s exists. Error: %v" , daemonExportFile , err )
1357+ if err := repo .checkDaemonExportOK (e ); err != nil {
13321358 return err
13331359 }
1334- if ! isPublic && isExist {
1335- if err = util .Remove (daemonExportFile ); err != nil {
1336- log .Error ("Failed to remove %s: %v" , daemonExportFile , err )
1337- }
1338- } else if isPublic && ! isExist {
1339- if f , err := os .Create (daemonExportFile ); err != nil {
1340- log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1341- } else {
1342- f .Close ()
1343- }
1344- }
13451360
13461361 forkRepos , err := getRepositoriesByForkID (e , repo .ID )
13471362 if err != nil {
0 commit comments