1# Copyright 2021 Northern.tech AS 2 3# This file is part of CFEngine 3 - written and maintained by Northern.tech AS. 4 5# This program is free software; you can redistribute it and/or modify it 6# under the terms of the GNU General Public License as published by the 7# Free Software Foundation; version 3. 8 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13 14# You should have received a copy of the GNU General Public License 15# along with this program; if not, write to the Free Software 16# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 17 18# To the extent this program is licensed as part of the Enterprise 19# versions of Cfengine, the applicable Commercial Open Source License 20# (COSL) may apply to this file if you as a licensee so wish it. See 21# included file COSL.txt. 22 23#+begin_src cfengine3 24body common control 25{ 26 bundlesequence => { "test" }; 27} 28 29bundle agent test(f) 30{ 31 vars: 32 # Define data inline for convenience 33 "table" string => "one: a 34 two: b 35 three: c"; 36 37 ####################################### 38 39 "dim" int => parsestringarrayidx( 40 "items", 41 "$(table)", 42 "\s*#[^\n]*", 43 ":", 44 "1000", 45 "200000" 46 ); 47 48 "keys" slist => getindices("items"); 49 "sorted_keys" slist => sort(keys, "int"); 50 51 reports: 52 "item $(sorted_keys) has column 0 = $(items[$(sorted_keys)][0]) and column 1 = $(items[$(sorted_keys)][1])"; 53} 54#+end_src 55############################################################################### 56#+begin_src example_output 57#@ ``` 58#@ R: item 0 has column 0 = one and column 1 = a 59#@ R: item 1 has column 0 = two and column 1 = b 60#@ R: item 2 has column 0 = three and column 1 = c 61#@ ``` 62#+end_src 63