| 1 |
|
| 2 | #### module
|
| 3 | shopt --set ysh:upgrade
|
| 4 |
|
| 5 | module 'main' || return 0
|
| 6 | source $REPO_ROOT/spec/testdata/module/common.ysh
|
| 7 | source $REPO_ROOT/spec/testdata/module/module1.ysh
|
| 8 | ## STDOUT:
|
| 9 | common
|
| 10 | module1
|
| 11 | ## END
|
| 12 |
|
| 13 | #### is-main
|
| 14 |
|
| 15 | # This sources lib.ysh
|
| 16 | $SH $REPO_ROOT/spec/testdata/module/main.ysh
|
| 17 |
|
| 18 | # Run it directly
|
| 19 | $SH $REPO_ROOT/spec/testdata/module/lib.ysh
|
| 20 |
|
| 21 | ## STDOUT:
|
| 22 | lib.ysh is not the main module
|
| 23 | hi from main.ysh
|
| 24 | hi from lib.ysh
|
| 25 | ## END
|
| 26 |
|
| 27 | #### is-main with -c and stdin
|
| 28 |
|
| 29 | $SH -c 'echo -c; is-main; echo status=$?'
|
| 30 |
|
| 31 | echo 'echo stdin; is-main; echo status=$?' | $SH
|
| 32 |
|
| 33 | ## STDOUT:
|
| 34 | -c
|
| 35 | status=0
|
| 36 | stdin
|
| 37 | status=0
|
| 38 | ## END
|
| 39 |
|
| 40 | #### runproc
|
| 41 | shopt --set parse_proc
|
| 42 |
|
| 43 | f() {
|
| 44 | write -- f "$@"
|
| 45 | }
|
| 46 | proc p {
|
| 47 | write -- p "$@"
|
| 48 | }
|
| 49 | runproc f 1 2
|
| 50 | echo status=$?
|
| 51 |
|
| 52 | runproc p 3 4
|
| 53 | echo status=$?
|
| 54 |
|
| 55 | runproc invalid 5 6
|
| 56 | echo status=$?
|
| 57 |
|
| 58 | runproc
|
| 59 | echo status=$?
|
| 60 |
|
| 61 | ## STDOUT:
|
| 62 | f
|
| 63 | 1
|
| 64 | 2
|
| 65 | status=0
|
| 66 | p
|
| 67 | 3
|
| 68 | 4
|
| 69 | status=0
|
| 70 | status=1
|
| 71 | status=2
|
| 72 | ## END
|
| 73 |
|
| 74 | #### runproc typed args
|
| 75 | shopt --set parse_brace parse_proc
|
| 76 |
|
| 77 | proc p {
|
| 78 | echo hi
|
| 79 | }
|
| 80 |
|
| 81 | # The block is ignored for now
|
| 82 | runproc p {
|
| 83 | echo myblock
|
| 84 | }
|
| 85 | ## STDOUT:
|
| 86 | hi
|
| 87 | ## END
|
| 88 |
|