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.
50 lines
2.2 KiB
50 lines
2.2 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
|
|
# looking for the classical tags e.g. TODO, XXX
|
|
# ideally leveraging also the dated diff of the CVS to see how long does it take to fix each
|
|
# generate links out of includes of other recipes
|
|
# clean trailing comments
|
|
# s/#.*$// or s/\/\/.*$//
|
|
# add a hook (locally and/or remotely) to generate this after each commit
|
|
# directly generate and overwrite a PmWiki file in the right location rather than rely on import
|
|
# echo -e -n 'version=urlencoded=1\ntext=' > ~/www/devpim/wiki.d/Recipes.RecipesTest && ../shell_scripts/pmwiki_recipes_info_listing | sed "s/%/%25/g" | sed -e '{:q;N;s/\n/%0a/g;t q}' >> ~/www/devpim/wiki.d/Recipes.RecipesTest
|
|
# warning, this work only for bare repositories
|
|
|
|
WIKIPAGENAME=Recipes
|
|
RECIPESPATH=/home/fabien/repository/pmwiki_recipes
|
|
REPOSITORYURL="Repository:?p=.git;a=blob;f=pmwiki_recipes"
|
|
|
|
cd $RECIPESPATH
|
|
echo "[[#RecipeMenuStart]]";
|
|
for SCRIPT in `ls`;
|
|
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`;
|
|
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 [[Path:?action=search\&q=%3A\1|[@(:\1:)@]]](:pagelist :\1 page=-$WIKIPAGENAME fmt=#simple:)/" ;
|
|
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/$SCRIPT#l$FUNCTIONLINE|$FUNCTION($PARAMS)]]";
|
|
done
|
|
echo "";
|
|
done
|
|
echo "%comment%generated via shell_scripts/pmwiki_recipes_info_listing%%";
|
|
|