2023-04-27 09:06:45 +03:00
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package misc
import (
"net/http"
"path"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/httpcache"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
2023-05-13 17:04:57 +03:00
"code.gitea.io/gitea/modules/util"
2023-04-27 09:06:45 +03:00
)
func SSHInfo ( rw http . ResponseWriter , req * http . Request ) {
2024-05-06 19:34:16 +03:00
if ! git . DefaultFeatures ( ) . SupportProcReceive {
2023-04-27 09:06:45 +03:00
rw . WriteHeader ( http . StatusNotFound )
return
}
rw . Header ( ) . Set ( "content-type" , "text/json;charset=UTF-8" )
_ , err := rw . Write ( [ ] byte ( ` { "type":"gitea","version":1} ` ) )
if err != nil {
log . Error ( "fail to write result: err: %v" , err )
rw . WriteHeader ( http . StatusInternalServerError )
return
}
rw . WriteHeader ( http . StatusOK )
}
func DummyOK ( w http . ResponseWriter , req * http . Request ) {
w . WriteHeader ( http . StatusOK )
}
func RobotsTxt ( w http . ResponseWriter , req * http . Request ) {
2023-07-21 15:14:20 +03:00
robotsTxt := util . FilePathJoinAbs ( setting . CustomPath , "public/robots.txt" )
if ok , _ := util . IsExist ( robotsTxt ) ; ! ok {
robotsTxt = util . FilePathJoinAbs ( setting . CustomPath , "robots.txt" ) // the legacy "robots.txt"
}
2023-05-13 17:04:57 +03:00
httpcache . SetCacheControlInHeader ( w . Header ( ) , setting . StaticCacheTime )
2023-07-21 15:14:20 +03:00
http . ServeFile ( w , req , robotsTxt )
2023-04-27 09:06:45 +03:00
}
func StaticRedirect ( target string ) func ( w http . ResponseWriter , req * http . Request ) {
return func ( w http . ResponseWriter , req * http . Request ) {
http . Redirect ( w , req , path . Join ( setting . StaticURLPrefix , target ) , http . StatusMovedPermanently )
}
}