You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
misc/shell_scripts/pmwiki_recipes_info_listing

44 lines
1.6 KiB

#! /usr/bin/env bash
# format the recipes in a repository or cookbook directory
# note that it requires a pretty strict and coherent syntax
# this is intended to be imported to a dedicated page
# e.g. pmwiki_recipes_info_listing > ~/www/devpim/import/Recipes.CurrentlyInstalled
# or manually pmwiki_recipes_info_listing | xclip
#
# TODO
# clean trailing comments
# s/#.*$// or s/\/\/.*$//
# add a hook (locally and/or remotely) to generate this after each commit
WIKIPAGENAME=Recipes
RECIPESPATH=/home/fabien/repository/pmwiki_recipes
REPOSITORYURL="http://fabien.benetou.fr/repository/?p=.git;a=blob;f=pmwiki_recipes"
echo "[[#RecipeMenuStart]]";
for SCRIPT in `ls $RECIPESPATH`;
do
SCT=`echo $SCRIPT|sed "s/\.php//"`
echo "* [[$WIKIPAGENAME#$SCRIPT|$SCT]]";
done
echo "[[#RecipeMenuEnd]]";
echo "%comment%facilitate include in other pages%%";
echo -e "\n----\n"
for SCRIPT in `ls $RECIPESPATH`;
do
echo -n '!';
echo "[[#$SCRIPT]][[$REPOSITORYURL/$SCRIPT|$SCRIPT]]";
grep RecipeInfo $SCRIPT | sed "s/.*= '\(.*\)';.*/* version (or date) \1/" ;
grep HandleAction $SCRIPT | sed "s/.*], '\(.*\)');.*/* action [[Path:?action=\1]]/" ;
grep ^Markup $SCRIPT | sed "s/.*:\(.*\):.*/* markup [@(:\1:)@]/" ;
echo "* functions";
for FUNCTION in `grep ^function $SCRIPT | sed "s/^function \(.*\)(.*/\1/"`
do
PARAMS=`grep "^function $FUNCTION" $SCRIPT | sed "s/^function $FUNCTION(\(.*\)).*/\1/"`
FUNCTIONLINE=`grep -n "^function $FUNCTION" $SCRIPT | sed "s/:.*//"`;
echo "** [[$REPOSITORYURL#l$FUNCTIONLINE|$FUNCTION($PARAMS)]]";
done
echo "";
done
echo "%comment%generated via shell_scripts/pmwiki_recipes_info_listing%%";