Skip to content

Commit cef0f12

Browse files
lunnytechknowlogick
authored andcommitted
support envs on external render commands (#5278)
1 parent 8ef177f commit cef0f12

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

modules/markup/external/external.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"io/ioutil"
1111
"os"
1212
"os/exec"
13+
"runtime"
1314
"strings"
1415

1516
"code.gitea.io/gitea/modules/log"
@@ -41,13 +42,24 @@ func (p *Parser) Extensions() []string {
4142
return p.FileExtensions
4243
}
4344

45+
func envMark(envName string) string {
46+
if runtime.GOOS == "windows" {
47+
return "%" + envName + "%"
48+
}
49+
return "$" + envName
50+
}
51+
4452
// Render renders the data of the document to HTML via the external tool.
4553
func (p *Parser) Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte {
4654
var (
47-
bs []byte
48-
buf = bytes.NewBuffer(bs)
49-
rd = bytes.NewReader(rawBytes)
50-
commands = strings.Fields(p.Command)
55+
bs []byte
56+
buf = bytes.NewBuffer(bs)
57+
rd = bytes.NewReader(rawBytes)
58+
urlRawPrefix = strings.Replace(urlPrefix, "/src/", "/raw/", 1)
59+
60+
command = strings.NewReplacer(envMark("GITEA_PREFIX_SRC"), urlPrefix,
61+
envMark("GITEA_PREFIX_RAW"), urlRawPrefix).Replace(p.Command)
62+
commands = strings.Fields(command)
5163
args = commands[1:]
5264
)
5365

@@ -79,7 +91,7 @@ func (p *Parser) Render(rawBytes []byte, urlPrefix string, metas map[string]stri
7991
cmd.Env = append(
8092
os.Environ(),
8193
"GITEA_PREFIX_SRC="+urlPrefix,
82-
"GITEA_PREFIX_RAW="+strings.Replace(urlPrefix, "/src/", "/raw/", 1),
94+
"GITEA_PREFIX_RAW="+urlRawPrefix,
8395
)
8496
if !p.IsInputFile {
8597
cmd.Stdin = rd

0 commit comments

Comments
 (0)