94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | |
| 
 | |
| function get_version() {
 | |
|     # lire le numéro de version dans le fichier $1
 | |
|     awk '/var[ \t]*version/ {
 | |
| match($0, /major: [0-9]*,/)
 | |
| major = substr($0, RSTART + 7, RLENGTH - 8)
 | |
| match($0, /minor: [0-9]*,/)
 | |
| minor = substr($0, RSTART + 7, RLENGTH - 8)
 | |
| match($0, /revision: [0-9]*,/)
 | |
| revision = substr($0, RSTART + 10, RLENGTH - 11)
 | |
| print major "." minor "." revision
 | |
| exit
 | |
| }' "$1"
 | |
| }
 | |
| 
 | |
| function dump_header() {
 | |
|     # lire et afficher le contenu avant-storeArea du tiddlywiki $1
 | |
|     awk '
 | |
| BEGIN { found = 0 }
 | |
| /<div id="storeArea"/ { found = 1 }
 | |
| ! found { print }
 | |
| ' "$1"
 | |
| }
 | |
| 
 | |
| function dump_footer() {
 | |
|     # lire et afficher le contenu après-storeArea du tiddlywiki $1
 | |
|     awk '
 | |
| BEGIN {
 | |
|     foundStoreArea = 0
 | |
|     foundFooter = 0
 | |
| }
 | |
| /<div id="storeArea"/ { foundStoreArea = 1 }
 | |
| foundStoreArea && /<\/div>.*<\/div>/ { foundFooter = 1; next }
 | |
| foundStoreArea && /^[ \t]*<\/div>/ { foundFooter = 1; next }
 | |
| foundFooter { print }
 | |
| ' "$1"
 | |
| }
 | |
| 
 | |
| function dump_storeArea() {
 | |
|     # lire et afficher le storeArea dans le tiddlywiki $1
 | |
|     awk '
 | |
| BEGIN { found = 0 }
 | |
| /<div id="storeArea"/ { found = 1 }
 | |
| found { print }
 | |
| found && /<\/div>.*<\/div>/ { found = 0; next }
 | |
| found && /^[ \t]*<\/div>/ { found = 0; next }
 | |
| ' "$1"
 | |
| }
 | |
| 
 | |
| function dump_defaultStoreArea() {
 | |
|     # Générer un storeArea par défaut pour le projet dont le répertoire est $1
 | |
|     local today="$(date +%Y%m%d%H%M)"
 | |
|     local projdir="${1:-.}"
 | |
|     local title subtitle
 | |
|     if [ -f "$projdir/build.properties" ]; then
 | |
|         local project_name project_desc
 | |
|         file_get_properties "$projdir/build.properties" project_name "" project_desc ""
 | |
|         title="$project_name"
 | |
|         subtitle="$project_desc"
 | |
|     fi
 | |
|     [ -z "$title" ] && title="$(basename "$(abspath "$projdir")")"
 | |
|     [ -z "$subtitle" ] && subtitle="Gestion des tâches"
 | |
| 
 | |
|     echo '<div id="storeArea">
 | |
| <div tiddler="SiteTitle" modified="'"$today"'" modifier="JephteCLAIN" tags="systemTiddlers">'"$title"'</div>
 | |
| <div tiddler="SiteSubtitle" modified="'"$today"'" modifier="JephteCLAIN" tags="systemTiddlers">'"$subtitle"'</div>
 | |
| </div>'
 | |
| }
 | |
| 
 | |
| function replace_storeArea() {
 | |
|     # dans le tiddlywiki $1, remplacer le storeArea par le fichier $2 (par défaut, lu sur stdin)
 | |
|     (
 | |
|         dump_header "$1"
 | |
|         if [ -z "$2" -o "$2" == "-" ]; then
 | |
|             cat
 | |
|         else
 | |
|             cat "$2"
 | |
|         fi
 | |
|         dump_footer "$1"
 | |
|     ) >"$1.$$"
 | |
|     /bin/mv "$1.$$" "$1"
 | |
| }
 | |
| 
 | |
| function upgrade_TiddlyWiki() {
 | |
|     # mettre à jour le tiddly wiki $1 avec $2
 | |
|     (
 | |
|         dump_header "$2"
 | |
|         dump_storeArea "$1"
 | |
|         dump_footer "$2"
 | |
|     ) >"$1.$$"
 | |
|     /bin/mv "$1.$$" "$1"
 | |
| }
 |