@@ -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,31 @@ 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 () error {
1164+ // Create/Remove git-daemon-export-ok for git-daemon...
1165+ daemonExportFile := path .Join (repo .RepoPath (), `git-daemon-export-ok` )
1166+ isExist , err := util .IsExist (daemonExportFile )
1167+ isPublic := ! repo .IsPrivate && repo .Owner .Visibility == api .VisibleTypePublic
1168+ if err != nil {
1169+ log .Error ("Unable to check if %s exists. Error: %v" , daemonExportFile , err )
1170+ return err
1171+ }
1172+ if ! isPublic && isExist {
1173+ if err = util .Remove (daemonExportFile ); err != nil {
1174+ log .Error ("Failed to remove %s: %v" , daemonExportFile , err )
1175+ }
1176+ } else if isPublic && ! isExist {
1177+ if f , err := os .Create (daemonExportFile ); err != nil {
1178+ log .Error ("Failed to create %s: %v" , daemonExportFile , err )
1179+ } else {
1180+ f .Close ()
1181+ }
1182+ }
1183+
1184+ return nil
1185+ }
1186+
11721187func countRepositories (userID int64 , private bool ) int64 {
11731188 sess := db .GetEngine (db .DefaultContext ).Where ("id > 0" )
11741189
@@ -1318,24 +1333,9 @@ func updateRepository(e db.Engine, repo *Repository, visibilityChanged bool) (er
13181333 }
13191334
13201335 // 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 )
1336+ if err := repo .CheckDaemonExportOK (); err != nil {
13261337 return err
13271338 }
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- }
13391339
13401340 forkRepos , err := getRepositoriesByForkID (e , repo .ID )
13411341 if err != nil {
0 commit comments