#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 source "$(dirname -- "$0")/lib/ulib/auto" || exit 1 urequire prefixes apache webobjects java wosign function display_help() { uecho "$scriptname: signer les jars d'un bundle USAGE $scriptname OPTIONS -f Forcer la (re)signature des jars -d Enlever la signature des jars originaux -s Signer les jar du bundle [PAR DEFAUT] --init 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." } 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 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 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" && eimportant "Le fichier $(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 [ -n "$1" ] || die "Il faut spécifier le bundle ou le jar à signer" wosign_setup_maybe || die "Pour pouvoir signer les jars, il faut installer la configuration des signatures dans $WOCONFIGURATION/Signatures Essayer avec l'option --init" select_java_any || die "Java est requis pour utiliser $scriptname" 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 die "Impossible de signer les jars pour $(ppath "$bundle"): $reason" fi done fi