[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/usr/bin/perl 2 3 ######################################################################### 4 # Projet SE3 : Modif d'une imprimante à la branche printers de LDAP # 5 # et configuration dans CUPS # 6 # /usr/share/se3/sbin/printerMod.pl # 7 # Philippe Chadefaux @ sambaedu.org # 8 # Distribué selon les termes de la licence GPL # 9 ######################################################################### 10 11 12 #####Modifie la conf d'une imprimante##### 13 ## $Id: printerMod.pl 6654 2011-11-27 16:35:54Z dbo $ ## 14 # 15 16 use Net::LDAP; 17 use Unicode::String qw(latin1 utf8); 18 19 require '/etc/SeConfig.ph'; 20 21 $ldap = Net::LDAP->new( 22 "$slapdIp", 23 port => "$slapdPort", 24 debug => "$slapdDebug", 25 timeout => "$slapdTimeout", 26 version => "$slapdVersion" 27 ); 28 29 $ldap->bind( 30 $adminDn, 31 password => $adminPw 32 ); 33 34 die("Erreur d'argument.\n") if ($#ARGV < 5); 35 36 37 ($nom_imprimante,$uri_imprimante,$lieu_imprimante,$info_imprimante,$protocole,$pilote,$mode)=@ARGV; 38 39 $nom_imprimante = latin1($nom_imprimante)->utf8; 40 $info_imprimante = latin1($info_imprimante)->utf8; 41 $lieu_imprimante = latin1($lieu_imprimante)->utf8; 42 43 44 if ( $protocole eq "socket" ){ 45 $uri_imprimante = "socket://".$uri_imprimante.":9100"; 46 } 47 elsif ( $protocole eq "http" ){ 48 $uri_imprimante = "http://".$uri_imprimante.":631"; 49 } 50 elsif ( $protocole eq "ipp" ){ 51 $uri_imprimante="http://".$uri_imprimante.":631/printers/".$nom_imprimante; 52 } 53 elsif ( $protocole eq "parallel" ){ 54 $uri_imprimante="parallel:/dev/".$uri_imprimante; 55 } 56 elsif ( $protocole eq "usb" ){ 57 $uri_imprimante="usb:/dev/usb/".$uri_imprimante; 58 } 59 elsif ( $protocole eq "lpd" ){ 60 $uri_imprimante="lpd://".$uri_imprimante."/".$nom_imprimante; 61 } 62 elsif ( $protocole ne "custom" ){ 63 $uri_imprimante="smb://adminse3:".$xppass."@".$uri_imprimante."/".$uri_imprimante."/".$nom_imprimante; 64 } 65 66 $result = $ldap->modify( "printer-name=$nom_imprimante,$printersDn", 67 replace =>[ 68 'printer-uri' => $uri_imprimante, 69 'printer-location' => $lieu_imprimante, 70 'printer-info' => $info_imprimante, 71 'printer-more-info' => $mode, 72 'nprintHardwareQueueName'=> $pilote, 73 objectClass =>['printerService','nprintNetworkPrinterInfo', 74 'extensibleObject'], 75 ] 76 ); 77 78 die("Echec à l'entrée dans ldap.\n") if ($result->code != 0); 79 #$result->code && warn "failed to add entry: ", $result->error ; 80 $mesg = $ldap->unbind; # take down session 81 82 # On commnce par la virer, car si la modif touche le protocole ou le driver il faut nettoyer les travaux existant 83 system("/usr/sbin/lpadmin -h 127.0.0.1 -x $nom_imprimante"); 84 85 # Puis on recrée pour pas de driver il faut envoyer raw a cups 86 if($pilote eq "dep") { 87 $pilote="raw"; 88 } 89 90 die ("Configuration CUPS échouée.\n") if (system("/usr/bin/sudo /usr/share/se3/scripts/lpadmin.sh -p $nom_imprimante -v $uri_imprimante -D \"$info_imprimante\" -L \"$lieu_imprimante\" -m $pilote -E") != 0); 91 92 93 system("/usr/share/se3/sbin/printers_group.pl"); 94 # die ("Création des fichiers de conf échouée.\n") if (system("/usr/bin/sudo /usr/share/se3/sbin/printers_group.pl") != 0); 95 96 die ("Redémarrage de Samba échoué.\n") if (system("/usr/bin/sudo /usr/share/se3/scripts/sambareload.sh") !=0); 97 98 exit 0;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |