{{- /* Get input parameters */ -}} {{ $useHeaderRow := .Get "header" }} {{ $featureMappingCsv := .Get "featureMappingCsv" }} {{ $featuresFile := readFile $featureMappingCsv }} {{ $featureRows := $featuresFile | transform.Unmarshal }} {{- /* Load BicepResourceModules.csv to get RepoURLs */ -}} {{ $modulesIndexCsv := .Get "modulesIndexCsv" }} {{ $modulesIndexFile := readFile $modulesIndexCsv }} {{ $moduleIndexRows := $modulesIndexFile | transform.Unmarshal }} {{ $modulesHeader := index $moduleIndexRows 0 }} {{ $moduleIndexData := after 1 $moduleIndexRows }} {{- /* Create a map of module names to RepoURLs for hyperlinking */ -}} {{- /* Key: module name (e.g., "avm/res/storage/storage-account"), Value: RepoURL */ -}} {{ $moduleUrlMap := dict }} {{ range $moduleIndexData }} {{ $moduleName := index . 4 }} {{- /* Column 4: ModuleName */ -}} {{ $repoUrl := index . 7 }} {{- /* Column 7: RepoURL */ -}} {{ $moduleUrlMap = merge $moduleUrlMap (dict $moduleName $repoUrl) }} {{ end }} {{- /* Process header row if enabled */ -}} {{- $headerRow := slice -}} {{- if $useHeaderRow -}} {{- $headerRow = index $featureRows 0 -}} {{- $featureRows = after 1 $featureRows -}} {{- range $colIdx, $header := $headerRow -}} {{- $header -}} {{- end -}} {{- end -}} {{- /* Calculate the index of the last row (for special formatting - bold) */ -}} {{- $lastIndex := sub (len $featureRows) 1 -}} {{- /* Iterate through each data row */ -}} {{- range $i, $row := $featureRows -}} {{- /* Repeat header row after every 20 rows (but not before first row or after header) */ -}} {{- if and (gt $i 0) (eq (mod $i 20) 0) (ne $i $lastIndex) -}} {{- range $colIdx, $header := $headerRow -}} {{- $header -}} {{- end -}} {{- end -}} {{- /* Iterate through each cell in the row */ -}} {{- range $colIndex, $cell := $row -}} {{- /* Special handling for the last row (Sum row) - make bold */ -}} {{- if eq $i $lastIndex -}} {{- else if eq $colIndex 0 -}} {{- /* Process # column (index 0) - right align */ -}} {{- else if eq $colIndex 1 -}} {{- /* Process Module column (index 1) */ -}} {{- $moduleName := $cell -}} {{- /* Replace "res/" with "avm/res/" if not already prefixed */ -}} {{- if and (hasPrefix $moduleName "res/") (not (hasPrefix $moduleName "avm/res/")) -}} {{- $moduleName = replaceRE "^res/" "avm/res/" $moduleName -}} {{- end -}} {{- /* Create hyperlink if URL exists */ -}} {{- $url := index $moduleUrlMap $moduleName -}} {{- if $url -}} {{- else -}} {{- end -}} {{- else -}} {{- /* All other columns (checkmarks) - center align */ -}} {{- end -}} {{- end -}} {{- end -}}
{{- emojify $cell -}}{{- emojify $cell -}}{{- emojify $moduleName -}}{{- emojify $moduleName -}}{{- emojify $cell -}}