96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | |
| source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | |
| urequire DEFAULTS prefixes apache webobjects java wosign
 | |
| 
 | |
| function display_help() {
 | |
|     uecho "$scriptname: signer les jars d'un bundle
 | |
| 
 | |
| USAGE
 | |
|     $scriptname <app.woa|fwk.framework|file.jar>
 | |
| 
 | |
| 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
 | 
