File: lines2array

package info (click to toggle)
libzypp 17.25.7-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 30,144 kB
  • sloc: cpp: 94,656; xml: 2,575; sh: 700; makefile: 34; python: 12
file content (30 lines) | stat: -rwxr-xr-x 644 bytes parent folder | download | duplicates (4)
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
#! /bin/bash

OFILE=${1:-array}

cat $1 | awk -vOFILE=$OFILE '
BEGIN {
	sep = " "
	printf "#ifndef ARRAY_%s_h\n", OFILE
	printf "#define ARRAY_%s_h\n", OFILE
	printf "\n"
	printf "#include <list>\n"
	printf "#include <string>\n"
	printf "\n"
	printf "std::list<std::string> %s()\n", OFILE
	printf "{\n"
	printf "  const char *const val[] = {\n"
}
{
	printf "    %s\"%s\"\n", sep, $0
	sep = ","
}
END {
	printf "  };\n"
	printf "  const char *const* e = val + sizeof( val ) / sizeof( const char *const );\n"
	printf "  return std::list<std::string>( val, e );\n"
	printf "}\n"
	printf "\n"
	printf "#endif // ARRAY_%s_h\n", OFILE
}
' > $OFILE.h