github.com/upcmd/up@v0.8.1-0.20230108151705-ad8b797bf04f/tests/functests/c0090.yml (about) 1 doc_meta: | 2 folder: loop 3 title: loopitem in dvar 4 head: | 5 This showcases that the loopitem, loopindex should be available in the dvar as reference. This will be useful when you use a call func to loop through a list of items 6 7 sections: 8 - title: Demo 9 log: yes 10 11 - title: Note 12 content: | 13 As self explained in the wrong_usage desc, you can't access loopitem in dvars in current stack. There are two ways you will have to access loopitem in dvar processing: 14 1. shown as correct_usage, use call to delegate loop process to a callee task 15 2. use block func, so the dvar in any func in actually in the callee stack 16 17 notes: 18 goal: 19 - make loop item and index parsablele in dvar 20 - loopitem and index will never be availab in dvar expansion phase as designed 21 22 tasks: 23 - 24 name: task 25 task: 26 27 - func: cmd 28 name: wrong_usage 29 desc: | 30 note that you can't access loopitem in dvar processing in curent func 31 you can only access loopitem in dvar processing when it is called as callee, as corret_usage shows 32 however you can access loopitem in do action 33 dvars: 34 - name: person 35 value: '{{.loopitem}}' 36 flags: 37 - v 38 loop: 39 - tom 40 - peter 41 - james 42 do: 43 - name: print 44 cmd: | 45 loopitme could be accessed here: {{.loopitem}} 46 47 - func: call 48 name: corret_usage 49 vars: 50 taskvar: taskvar 51 do: 52 - task_callee2 53 loop: 54 - tom 55 - peter 56 - james 57 58 - 59 name: task_callee1 60 task: 61 - func: cmd 62 do: 63 - 64 name: print 65 cmd: 'hello {{.loopitem}}' 66 - 67 name: task_callee2 68 task: 69 - func: cmd 70 dvars: 71 - name: person 72 value: '{{.loopitem}}' 73 flags: [v] 74 do: 75 - 76 name: print 77 desc: as explained, this should be <no value> 78 cmd: 'callee2: {{.person}}' 79 - 80 name: print 81 desc: | 82 this will be the loopitem from parent caller's 83 var space and this is design 84 cmd: 'callee2: {{.loopitem}}' 85 - 86 name: print 87 cmd: 'callee2: {{.greet}}' 88 - 89 name: print 90 cmd: 'taskvar: {{.taskvar}}'