importation initiale dans git
This commit is contained in:
194
legacy/instinc/woconf
Normal file
194
legacy/instinc/woconf
Normal file
@@ -0,0 +1,194 @@
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
##@require instinc/prefixes
|
||||
##@require instinc/wobase
|
||||
##@require instinc/wofunctions
|
||||
|
||||
function get_default_configfile() {
|
||||
# $1=resdir (woadir/Contents/Resources ou fwkdir/Resources)
|
||||
local configs configfile
|
||||
array_from_lines configs "$(list_files "$1" "*.config")"
|
||||
if [ ${#configs[*]} -eq 0 ]; then
|
||||
array_from_lines configs "$(list_files "$1" "config.xml")"
|
||||
fi
|
||||
echo "${configs:-Properties}"
|
||||
}
|
||||
|
||||
|
||||
function set_config_property() {
|
||||
# Modifier la propriété $2 avec la valeur $3 du fichier de configuration par
|
||||
# défaut de l'application $1. On peut préciser le nom du fichier de
|
||||
# configuration à utiliser avec $4. Par défaut, il s'agit du premier fichier
|
||||
# ayant l'extension .config. Il doit s'agir d'un fichier de propriétés java.
|
||||
|
||||
# si $2 vaut "-", $3 doit être de la forme "[configfile/]prop=value" ou
|
||||
# ">configfile[:srcfile]"
|
||||
|
||||
local action=setprop
|
||||
local bundir="$1" prop="$2" value="$3" configfile="$4"
|
||||
local srvresdir="$APP_SRVRESDIR"
|
||||
if is_wofwdir "$bundir"; then
|
||||
srvresdir="$FW_SRVRESDIR"
|
||||
fi
|
||||
|
||||
if [ "$prop" == "-" ]; then
|
||||
if beginswith "$value" ">"; then
|
||||
# choix d'un fichier de configuration par défaut
|
||||
action=setconfigfile
|
||||
configfile="${value#>}"
|
||||
prop=
|
||||
if [ "${configfile//:/}" != "$configfile" ]; then
|
||||
# on a donné un fichier source
|
||||
prop="copysrcfile"
|
||||
value="${configfile##*:}"
|
||||
configfile="${configfile%:*}"
|
||||
fi
|
||||
else
|
||||
# modification de la valeur d'une propriété
|
||||
prop="${value%%=*}"
|
||||
if [ "${prop//\//}" != "$prop" ]; then
|
||||
# on a donné le nom du fichier de propriété
|
||||
configfile="${prop%/*}"
|
||||
prop="${prop##*/}"
|
||||
fi
|
||||
value="${value#*=}"
|
||||
fi
|
||||
fi
|
||||
if [ -z "$configfile" ]; then
|
||||
if [ -n "$DEFAULT_CONFIGFILE" ]; then
|
||||
configfile="$DEFAULT_CONFIGFILE"
|
||||
else
|
||||
configfile="$(get_default_configfile "$bundir/$srvresdir")"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$action" == "setprop" ]; then
|
||||
dest="$configfile"
|
||||
first_char_is "$dest" "/" || dest="$bundir/$srvresdir/$dest"
|
||||
mkdirof "$dest"
|
||||
file_set_properties -c "$dest" "$prop" "$value"
|
||||
elif [ "$action" == "setconfigfile" ]; then
|
||||
if [ "$prop" == "copysrcfile" ]; then
|
||||
src="$value"
|
||||
dest="$configfile"
|
||||
# chemin absolus
|
||||
first_char_is "$src" "/" || src="$bundir/$srvresdir/$src"
|
||||
first_char_is "$dest" "/" || dest="$bundir/$srvresdir/$dest"
|
||||
mkdirof "$dest"
|
||||
/bin/cp -f "$src" "$dest"
|
||||
fi
|
||||
DEFAULT_CONFIGFILE="$configfile"
|
||||
fi
|
||||
}
|
||||
|
||||
function set_eomodel_property() {
|
||||
:
|
||||
}
|
||||
|
||||
function woconf_display_help() {
|
||||
echo "$scriptname: vérifier et modifier la configuration d'une application
|
||||
ou d'un framework
|
||||
|
||||
USAGE
|
||||
$scriptname <fw.framework|app.woa> \"conf_cmds\"
|
||||
|
||||
Les lignes de configuration peuvent être:
|
||||
#commentaire -- un commentaire (ignoré)
|
||||
v[erify] -- vérifier et corriger la consistance.
|
||||
Cette action est faite automatiquement sauf
|
||||
avec l'option --noverify.
|
||||
c>configfile -- changer le fichier de configuration par
|
||||
défaut
|
||||
c>configfile:srcfile -- copier le fichier de configuration srcfile
|
||||
sur configfile et choisir ce fichier comme
|
||||
fichier de configuration par défaut
|
||||
c[configfile/]prop=value -- modifier une propriété du fichier de
|
||||
configuration.
|
||||
=== les options suivantes ne sont pas encore implémentées =================
|
||||
eprofile:user:password -- configurer l'eomodel par défaut selon le
|
||||
profil
|
||||
ehost:port:instance:user:passwd
|
||||
-- configurer l'eomodel par défaut avec les
|
||||
valeurs données
|
||||
Ename.eomodeld:profile:user:password
|
||||
-- configurer l'eomodel donné selon le profil
|
||||
Ename.eomodeld:host:port:instance:user:password
|
||||
-- configurer l'eomodel donné avec les valeurs
|
||||
données
|
||||
Les lignes de configuration suivantes sont spécifiques aux application (.woa)
|
||||
aMyFramework[.framework] -- ajouter un framework
|
||||
rMyFramework[.framework] -- enlever un framework
|
||||
sbefore:after -- faire un recherche/remplacement
|
||||
f[ix_case] -- corriger la casse du classpath selon les
|
||||
frameworks installés"
|
||||
}
|
||||
|
||||
function woconf() {
|
||||
local noverify=
|
||||
|
||||
local end_of_options
|
||||
##@include sysinc/begingetopt
|
||||
-h|--help)
|
||||
woconf_display_help
|
||||
exit 0
|
||||
;;
|
||||
--no-verify)
|
||||
# ne pas effectuer automatiquement la vérification du bundle
|
||||
noverify=1
|
||||
;;
|
||||
##@include sysinc/endgetopt
|
||||
|
||||
local tagdir="$1" srcdir bundir
|
||||
|
||||
if [ -z "$tagdir" ]; then
|
||||
die "Il faut spécifier l'application ou le framework à modifier"
|
||||
fi
|
||||
tagdir="$(abspath "$1")"
|
||||
|
||||
if is_wosrcdir "$tagdir"; then
|
||||
srcdir="$tagdir"
|
||||
set_wobindir "$srcdir" bundir desc
|
||||
|
||||
elif is_woappdir "$tagdir"; then
|
||||
bundir="$tagdir"
|
||||
|
||||
elif is_wofwdir "$tagdir"; then
|
||||
bundir="$tagdir"
|
||||
|
||||
else
|
||||
die "Le bundle doit être un framework ou une application"
|
||||
fi
|
||||
|
||||
[ -w "$bundir" ] || die "Répertoire de bundle non accessible en écriture."
|
||||
|
||||
bundir="${bundir%/}"
|
||||
if [ -z "$noverify" ]; then
|
||||
verifix_bundle "$bundir"
|
||||
fi
|
||||
|
||||
array_from_lines conf_cmds "$2"
|
||||
for conf_cmd in "${conf_cmds[@]}"; do
|
||||
action="$(first_char "$conf_cmd")"
|
||||
option="$(last_chars "$conf_cmd")"
|
||||
if [ "$action" == "#" ]; then
|
||||
: # commentaire ignoré
|
||||
elif [ "$action" == "v" ]; then
|
||||
verifix_bundle "$bundir"
|
||||
elif [ "$action" == "c" ]; then
|
||||
set_config_property "$bundir" - "$option"
|
||||
elif [ "$action" == "e" ]; then
|
||||
set_eomodel_property "$bundir" - "$option"
|
||||
elif [ "$action" == "a" ]; then
|
||||
add_framework "$bundir" "$option"
|
||||
elif [ "$action" == "r" ]; then
|
||||
remove_framework "$bundir" "$option"
|
||||
elif [ "$action" == "s" ]; then
|
||||
search="${option%%:*}"
|
||||
replace="${option#*:}"
|
||||
searchreplace_classpath "$bundir" "$search" "$replace"
|
||||
elif [ "$action" == "f" ]; then
|
||||
fix_jars_case "$bundir"
|
||||
else
|
||||
eerror "Commande inconnue: $action"
|
||||
fi
|
||||
done
|
||||
}
|
||||
Reference in New Issue
Block a user