nutools/wosign

96 lines
3.0 KiB
Plaintext
Raw Permalink Normal View History

2013-08-27 15:14:44 +04:00
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
2014-07-07 22:06:38 +04:00
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
urequire DEFAULTS prefixes apache webobjects java wosign
2013-08-27 15:14:44 +04:00
function display_help() {
uecho "$scriptname: signer les jars d'un bundle
USAGE
2013-11-05 17:55:34 +04:00
$scriptname <app.woa|fwk.framework|file.jar>
2013-08-27 15:14:44 +04:00
OPTIONS
-f Forcer la (re)signature des jars
-d Enlever la signature des jars originaux
-s Signer les jar du bundle [PAR DEFAUT]
--init
2013-11-05 18:23:45 +04:00
Initialiser les fichiers de configuration pour la signature des bundles.
--sudo
Si le répertoire de destination des fichiers de configuration n'est
accessible en écriture, relancer le script en root."
2013-08-27 15:14:44 +04:00
}
sign=
unsign=
resign=
init=
default=1
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
-f resign=1 \
-d '$default=; unsign=1' \
-s '$default=; sign=1' \
--init '$default=; init=1' \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
[ -n "$default" ] && sign=1
compute_apache_prefixes
compute_webobjects_prefixes
create_wodirs_maybe
if [ -n "$init" ]; then
wosign_setup_maybe
2013-11-05 18:23:45 +04:00
if ! mkdir -p "$WOSIGN_CONFDIR" 2>/dev/null; then
enote "$(ppath "$WOSIGN_CONFDIR"): Impossible de créer le répertoire."
estep "Tentative de lancement du script avec les droits root."
run_as_root --init "$@"
elif [ ! -w "$WOSIGN_CONFDIR" ]; then
enote "$(ppath "$WOSIGN_CONFDIR"): Impossible d'écrire dans le répertoire."
estep "Tentative de lancement du script avec les droits root."
run_as_root --init "$@"
fi
if [ -f "$WOSIGN_CONF" ]; then
eimportant "$(ppath "$WOSIGN_CONF"): Ce fichier existe déjà."
ask_yesno "Voulez-vous l'écraser?" N || die
fi
2013-08-27 15:14:44 +04:00
echo "# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
# chemin complet vers le keystore qui convient la clé utilisée pour signer les
# jars
keystore=
# mot de passe pour accéder à la clé dans le keystore
storepass=
# alias de la clé dans le keystore
keyalias=" >"$WOSIGN_CONF" &&
chmod 644 "$WOSIGN_CONF" &&
2013-11-05 18:23:45 +04:00
eimportant "Le fichier
2013-08-27 15:14:44 +04:00
$(ppath "$WOSIGN_CONF")
a été créé avec les droits 644.
Vérifiez les autorisations pour protéger ce fichier des accès inapropriés."
else
2013-11-05 17:55:34 +04:00
[ -n "$1" ] || die "Il faut spécifier le bundle ou le jar à signer"
2013-08-27 15:14:44 +04:00
wosign_setup_maybe || die "Pour pouvoir signer les jars, il faut installer la configuration des signatures
dans $WOCONFIGURATION/Signatures
Essayer avec l'option --init"
2013-11-06 09:47:33 +04:00
select_java_any || die "Java est requis pour utiliser $scriptname"
2013-08-27 15:14:44 +04:00
for bundle in "$@"; do
if reason="$(wosignable "$bundle")"; then
if [ -f "$bundle" ]; then
etitle -s "Signature de $(ppath "$bundle")"
else
etitle -s "Signature des jars de $(ppath "$bundle")"
fi
wosign ${sign:+-s }${unsign:+-d }${resign:+-f }"$bundle"
eend
else
2013-11-05 17:55:34 +04:00
die "Impossible de signer les jars pour $(ppath "$bundle"): $reason"
2013-08-27 15:14:44 +04:00
fi
done
fi