@@ -1146,16 +1146,6 @@ func CreateRepository(ctx context.Context, doer, u *User, repo *Repository, over
11461146 return fmt .Errorf ("recalculateAccesses: %v" , err )
11471147 }
11481148
1149- if u .Visibility == api .VisibleTypePublic && ! repo .IsPrivate {
1150- // Create/Remove git-daemon-export-ok for git-daemon...
1151- daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1152- if f , err := os .Create (daemonExportFile ); err != nil {
1153- log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1154- } else {
1155- f .Close ()
1156- }
1157- }
1158-
11591149 if setting .Service .AutoWatchNewRepos {
11601150 if err = watchRepo (db .GetEngine (ctx ), doer .ID , repo .ID , true ); err != nil {
11611151 return fmt .Errorf ("watchRepo: %v" , err )
@@ -1169,6 +1159,38 @@ func CreateRepository(ctx context.Context, doer, u *User, repo *Repository, over
11691159 return nil
11701160}
11711161
1162+ // CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...
1163+ func (repo * Repository ) CheckDaemonExportOK (ctx context.Context ) error {
1164+ e := db .GetEngine (ctx )
1165+ if err := repo .getOwner (e ); err != nil {
1166+ return err
1167+ }
1168+
1169+ // Create/Remove git-daemon-export-ok for git-daemon...
1170+ daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1171+
1172+ isExist , err := util .IsExist (daemonExportFile )
1173+ if err != nil {
1174+ log .Error ("Unable to check if %s exists. Error: %v" , daemonExportFile , err )
1175+ return err
1176+ }
1177+
1178+ isPublic := ! repo .IsPrivate && repo .Owner .Visibility == api .VisibleTypePublic
1179+ if ! isPublic && isExist {
1180+ if err = util .Remove (daemonExportFile ); err != nil {
1181+ log .Error ("Failed to remove %s: %v" , daemonExportFile , err )
1182+ }
1183+ } else if isPublic && ! isExist {
1184+ if f , err := os .Create (daemonExportFile ); err != nil {
1185+ log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1186+ } else {
1187+ f .Close ()
1188+ }
1189+ }
1190+
1191+ return nil
1192+ }
1193+
11721194func countRepositories (userID int64 , private bool ) int64 {
11731195 sess := db .GetEngine (db .DefaultContext ).Where ("id > 0" )
11741196
@@ -1318,24 +1340,9 @@ func updateRepository(e db.Engine, repo *Repository, visibilityChanged bool) (er
13181340 }
13191341
13201342 // Create/Remove git-daemon-export-ok for git-daemon...
1321- daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1322- isExist , err := util .IsExist (daemonExportFile )
1323- isPublic := ! repo .IsPrivate && repo .Owner .Visibility == api .VisibleTypePublic
1324- if err != nil {
1325- log .Error ("Unable to check if %s exists. Error: %v" , daemonExportFile , err )
1343+ if err := repo .CheckDaemonExportOK (db .WithEngine (db .DefaultContext , e )); err != nil {
13261344 return err
13271345 }
1328- if ! isPublic && isExist {
1329- if err = util .Remove (daemonExportFile ); err != nil {
1330- log .Error ("Failed to remove %s: %v" , daemonExportFile , err )
1331- }
1332- } else if isPublic && ! isExist {
1333- if f , err := os .Create (daemonExportFile ); err != nil {
1334- log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1335- } else {
1336- f .Close ()
1337- }
1338- }
13391346
13401347 forkRepos , err := getRepositoriesByForkID (e , repo .ID )
13411348 if err != nil {
0 commit comments