File: windows-shell-parsing.llbuild

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (80 lines) | stat: -rw-r--r-- 1,726 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# REQUIRES: platform=Windows
#
# RUN: rm -rf %t.build
# RUN: mkdir -p %t.build
# RUN: mkdir -p "%t.build/dir with space"
# RUN: touch "%t.build/dir with space/file with space"
# RUN: cp %s %t.build/build.llbuild
# RUN: %{llbuild} buildsystem build --serial --chdir %t.build > %t.out
# RUN: %{FileCheck} --input-file=%t.out %s
#
# CHECK: fake\1\
# CHECK: fake\2\
# CHECK: %FOO%
# CHECK: BAZ
# CHECK: BUZZ
# CHECK: \"wonky quote\\\"
# CHECK-NEXT: next\"
# CHECK: file\ with\ space
# CHECK: foo"

client:
  name: basic

targets:
  "": ["<fake8>"]

commands:
  path:
    tool: shell
    outputs: ["<fake1>"]
    args: echo fake\1\
  path-end:
    tool: shell
    inputs: ["<fake1>"]
    outputs: ["<fake2>"]
    args: ["echo", "fake\\2\\"]
# Directly invoking echo should not parse the environment variable
  escape1:
    tool: shell
    inputs: ["<fake2>"]
    outputs: ["<fake3>"]
    env:
        FOO: BAR
    inherit-env: false
    args: ["echo", "%FOO%"]
# But invoking through cmd.exe should parse the environment variable
  escape2:
    tool: shell
    inputs: ["<fake3>"]
    outputs: ["<fake4>"]
    inherit-env: false
    env:
        FOO: BAZ
    args: echo %FOO%
  escape3:
    tool: shell
    inputs: ["<fake4>"]
    outputs: ["<fake5>"]
    inherit-env: false
    env:
        FOO: BUZZ
    args: ["cmd.exe", "/C", "echo %FOO%"]
  escape4:
    tool: shell
    inputs: ["<fake5>"]
    outputs: ["<fake6>"]
    inherit-env: false
    env:
        INPUT1: quote
    args: echo "wonky %INPUT1%\"&echo next"
  spaces:
    tool: shell
    inputs: ["<fake6>"]
    outputs: ["<fake7>"]
    args: ["dir", "dir with space"]
  quote:
    tool: shell
    inputs: ["<fake7>"]
    outputs: ["<fake8>"]
    args: ["echo", "foo\""]