1*2810ac1bSKiyoung Kim#!/bin/bash 2*2810ac1bSKiyoung Kim# This script generates some C code for inclusion in the capsh binary. 3*2810ac1bSKiyoung Kim# The Makefile generally only generates the .c code and compares it 4*2810ac1bSKiyoung Kim# with the checked in code in the progs directory. 5*2810ac1bSKiyoung Kim 6*2810ac1bSKiyoung Kimcat<<EOF 7*2810ac1bSKiyoung Kim#include <stdio.h> 8*2810ac1bSKiyoung Kim 9*2810ac1bSKiyoung Kim#include "./capshdoc.h" 10*2810ac1bSKiyoung Kim 11*2810ac1bSKiyoung Kim/* 12*2810ac1bSKiyoung Kim * A line by line explanation of each named capability value 13*2810ac1bSKiyoung Kim */ 14*2810ac1bSKiyoung KimEOF 15*2810ac1bSKiyoung Kim 16*2810ac1bSKiyoung Kimlet x=0 17*2810ac1bSKiyoung Kimwhile [ -f "../doc/values/${x}.txt" ]; do 18*2810ac1bSKiyoung Kim name=$(grep -F ",${x}}" ../libcap/cap_names.list.h|sed -e 's/{"//' -e 's/",/ = /' -e 's/},//') 19*2810ac1bSKiyoung Kim echo "static const char *explanation${x}[] = { /* ${name} */" 20*2810ac1bSKiyoung Kim sed -e 's/"/\\"/g' -e 's/^/ "/' -e 's/$/",/' "../doc/values/${x}.txt" 21*2810ac1bSKiyoung Kim let x=1+${x} 22*2810ac1bSKiyoung Kim echo " NULL" 23*2810ac1bSKiyoung Kim echo "};" 24*2810ac1bSKiyoung Kimdone 25*2810ac1bSKiyoung Kim 26*2810ac1bSKiyoung Kimcat<<EOF 27*2810ac1bSKiyoung Kimconst char **explanations[] = { 28*2810ac1bSKiyoung KimEOF 29*2810ac1bSKiyoung Kimlet y=0 30*2810ac1bSKiyoung Kimwhile [ "${y}" -lt "${x}" ]; do 31*2810ac1bSKiyoung Kim echo " explanation${y}," 32*2810ac1bSKiyoung Kim let y=1+${y} 33*2810ac1bSKiyoung Kimdone 34*2810ac1bSKiyoung Kimcat<<EOF 35*2810ac1bSKiyoung Kim}; 36*2810ac1bSKiyoung Kim 37*2810ac1bSKiyoung Kimconst int capsh_doc_limit = ${x}; 38*2810ac1bSKiyoung KimEOF 39