Commit 0650e8ee authored by David's avatar David

Ajout des paramètres CLI

parent a4fc09fc
#!/usr/bin/perl -w
# xsshfs v0.3
# xsshfs v0.4
#
# Copyright David MERCEREAUt <david.mercereau [aro] gmail [.] com>. This program is free software;
# you can redistribute it and/or modify it under the terms of the GNU General Public License
......@@ -19,7 +19,7 @@
# Please take a look at http://www.gnu.org/licenses/gpl.html
#
# unsleeper can:
# v0.3: Aout 2008
# v0.4: Aout 2012
#
# DEPENDANCE:
# - fuse-utils
......
package X ;
package rappels ;
use strict ;
use strict;
use warnings "all";
use Getopt::Long;
require Exporter ;
use vars qw(@EXPORT_OK) ;
@EXPORT_OK = qw ($gladexml) ;
use vars qw($gladexml) ;
# Version du programme (et des base)
my $version = '0.4'; my $dateVersion = 'Juin 2012';
use Gtk2 '-init' ;
use Gtk2::GladeXML ;
# parametres generaux du programme
my $params = {
'version' => $version,
'dateversion' => $dateVersion,
'programme' => 'Xsshfs',
'help' => 0,
'debug' => 0,
'versionOption' => 0,
'fichierConfig' => "$ENV{HOME}/.xsshfs",
'comboSetText' => "Slectionner"
};
# On crée l'arbre xml complet. Attention, toutes les fenêtres déclarées
# visibles dans le menu Propriétés->commun->visible, seront affichées
# quand on lancera "Gtk2->main".
$gladexml = Gtk2::GladeXML->new('xsshfs.glade' ) ;
# On initialise les variables du module rappels.
rappels::init () ;
# On connecte les fonctions de rappels de l'arbre xml
# à leurs définitions qui sont contenues dans le module rappels.
$gladexml->signal_autoconnect_from_package('rappels' ) ;
# Lecture des options ligne de commande
GetOptions(
'help!' => \$params->{help},
'debug!' => \$params->{debug},
'version!' => \$params->{versionOption},
'fichierConfig:s' => \$params->{fichierConfig},
);
1 ;
if ($params->{versionOption} > 0) {
print "Programme : $params->{programme}.pl V$params->{version} - ($params->{dateversion})\n";
exit();
}
package rappels ;
if ($params->{help} > 0) {
print <<TEXTHELP;
Programme : $params->{programme}.pl V$params->{version} - ($params->{dateversion})
Interface graphique pour SSHFS
Perl version : $]
use strict ;
use vars qw($gladexml $C_fichier_sav $C_default_combo_set_text $C_debug) ;
Usage : $params->{programme}.pl [Option ...]
Option :
-fichierConfig : Fichier de configuration (defaut \$HOME/.xsshfs)
-debug : Active le debug
-help : Affiche cette aide
-version : Affiche la version du programme
DEPENDANCE:
-fuse-utils
-libfuse2
-sshfs
-ssh-askpass
-libgtk2-gladexml-perl
-perl
LICENSE:
Copyright David MERCEREAUt <david.mercereau [aro] gmail [.] com>. This program is free software;
you can redistribute it and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
#
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Please take a look at http://www.gnu.org/licenses/gpl.html
Auteur : David MERCEREAUt <david.mercereau [aro] gmail [.] com>
Contributeur : Laurent CORROCHANO <l.corrochano [aro] free [.] fr>
Site : http://xsshfs.zici.fr
TEXTHELP
exit();
}
use vars qw($gladexml) ;
# $gladexml est donc la variable qui fera rfrence l'arbre xml
# de l'application.
# On initialise la valeur de la variable quand l'arbre est cr
......@@ -36,10 +90,8 @@ use vars qw($gladexml $C_fichier_sav $C_default_combo_set_text $C_debug) ;
############
sub init {
# Constante globale
$C_debug = 0;
$C_fichier_sav = "$ENV{HOME}/.xsshfs";
$C_default_combo_set_text = "Sélectionner";
$params->{fichierConfig} = "$ENV{HOME}/.xsshfs";
$params->{comboSetText} = "Slectionner";
# Dmarage de l'interface graphique
$gladexml = $X::gladexml ;
# Valeur d'environement par default pour les nouvelle connexion
......@@ -97,10 +149,10 @@ sub on_bouton_monter_new_clicked {
sub on_bouton_monter_sav_clicked {
debug("Montage d'une connexion enregistre");
my $nom_connexion_enregistree = $gladexml->get_widget('connexion_sav_combo')->entry->get_text();
if ($nom_connexion_enregistree ne $C_default_combo_set_text && $nom_connexion_enregistree ne "")
if ($nom_connexion_enregistree ne $params->{comboSetText} && $nom_connexion_enregistree ne "")
{
# Exploration du fichiers de sauvegarde
open (FICSAV_R, "$C_fichier_sav");
open (FICSAV_R, "$params->{fichierConfig}");
while (<FICSAV_R>) {
my @data_sav = split ("#", $_);
#print "comparaison de $data_sav[0] eq $nom_connexion_enregistree \n";
......@@ -116,7 +168,7 @@ sub on_bouton_monter_sav_clicked {
sub on_bouton_demonter_clicked {
debug("Dmontage un rperoire sshfs");
my $a_deconnecter = $gladexml->get_widget('deconnexion_combo')->entry->get_text();
if ($a_deconnecter ne $C_default_combo_set_text && $a_deconnecter ne "")
if ($a_deconnecter ne $params->{comboSetText} && $a_deconnecter ne "")
{
umount_sshfs($a_deconnecter);
}
......@@ -125,12 +177,12 @@ sub on_bouton_demonter_clicked {
sub on_button_effacer_connexion_enregistree_clicked {
debug("Effacer connexion enregistre");
my $nom_connexion_enregistree = $gladexml->get_widget('connexion_sav_combo')->entry->get_text();
if ($nom_connexion_enregistree ne $C_default_combo_set_text)
if ($nom_connexion_enregistree ne $params->{comboSetText})
{
rename $C_fichier_sav, "$C_fichier_sav.back";
rename $params->{fichierConfig}, "$params->{fichierConfig}.back";
# Lecture du fichier de sauvegarde back
open (FICSAV_R, "$C_fichier_sav.back");
open (FICSAV_W, ">> $C_fichier_sav");
open (FICSAV_R, "$params->{fichierConfig}.back");
open (FICSAV_W, ">> $params->{fichierConfig}");
while (<FICSAV_R>) {
my ($var_nom_sav) = split ("#", $_);
if ($var_nom_sav ne $nom_connexion_enregistree)
......@@ -140,7 +192,7 @@ sub on_button_effacer_connexion_enregistree_clicked {
}
close(FICSAV_W);
close(FICSAV_R);
unlink "$C_fichier_sav.back";
unlink "$params->{fichierConfig}.back";
&actualiser_connexion_sav_combo;
}
}
......@@ -150,7 +202,7 @@ sub on_bouton_actualiser_deconnexion_clicked {
sub on_bouton_ouvrir_clicked {
debug("Ouverture d'un rpertoire");
my $a_ouvrir = $gladexml->get_widget('deconnexion_combo')->entry->get_text();
if ($a_ouvrir ne $C_default_combo_set_text && $a_ouvrir ne "")
if ($a_ouvrir ne $params->{comboSetText} && $a_ouvrir ne "")
{
# Ouverture gestionnaire fichiers
my $ouvrir_dossier_fin = $gladexml->get_widget('Ouvrir_browser');
......@@ -168,7 +220,7 @@ sub on_bouton_ouvrir_clicked {
sub debug {
# 1 = Activer / 0 = Dsactiv
my $msg_debug=shift;
if ($C_debug == 1)
if ($params->{debug} == 1)
{
print "Debug : $msg_debug\n";
}
......@@ -179,10 +231,10 @@ sub actualiser_connexion_sav_combo{
my (@liste_sav);
my $nb_item = 0;
# Si le fichier de sauvegarde existe
if (-e $C_fichier_sav)
if (-e $params->{fichierConfig})
{
# Lecture du fichier de sauvegarde
open (FICSAV, $C_fichier_sav);
open (FICSAV, $params->{fichierConfig});
while (<FICSAV>) {
my ($var_add_sav) = split ("#", $_);
@liste_sav = (@liste_sav, $var_add_sav);
......@@ -198,7 +250,7 @@ sub actualiser_connexion_sav_combo{
else
{
$gladexml->get_widget("connexion_sav_combo")->set_popdown_strings(@liste_sav);
$gladexml->get_widget("connexion_sav_combo")->entry->set_text($C_default_combo_set_text);
$gladexml->get_widget("connexion_sav_combo")->entry->set_text($params->{comboSetText});
}
}
# Actualise la deconnexion combo
......@@ -226,7 +278,7 @@ sub actualiser_deconnexion_combo {
else
{
$gladexml->get_widget("deconnexion_combo")->set_popdown_strings(@liste_deco);
$gladexml->get_widget("deconnexion_combo")->entry->set_text($C_default_combo_set_text);
$gladexml->get_widget("deconnexion_combo")->entry->set_text($params->{comboSetText});
}
}
# Compltation automatique du champ mountpoint suivant user & host
......@@ -252,7 +304,7 @@ sub Enregistrer_connexion {
my $data_port = $gladexml->get_widget('port')->get_text();
# Vrification de la non existance de la connexion
my $erreur_sav_existe = 0;
open (FICSAV, $C_fichier_sav);
open (FICSAV, $params->{fichierConfig});
while (<FICSAV>) {
my ($var_nom_sav) = split ("#", $_);
if ($var_nom_sav eq $data_nom_sav)
......@@ -268,7 +320,7 @@ sub Enregistrer_connexion {
my $Nom_Sav_Dialog = $gladexml->get_widget('Nom_Sav_Dialog')->run;
} else {
# Enregistrement de la connexion
open(FICSAV_W, ">> $C_fichier_sav");
open(FICSAV_W, ">> $params->{fichierConfig}");
print FICSAV_W "$data_nom_sav#$data_user#$data_host#$data_dir#$data_mountpoint#$data_port#\n";
close(FICSAV_W);
&fermeture_nom_sav;
......@@ -356,3 +408,27 @@ sub Erreur_Dialog{
my $Erreur_Dialog = $gladexml->get_widget('Erreur_Dialog')->run;
}
1 ;
package X ;
use strict ;
require Exporter ;
use vars qw(@EXPORT_OK) ;
@EXPORT_OK = qw ($gladexml) ;
use vars qw($gladexml) ;
use Gtk2 '-init' ;
use Gtk2::GladeXML ;
# On cre l'arbre xml complet. Attention, toutes les fentres dclares
# visibles dans le menu Proprits->commun->visible, seront affiches
# quand on lancera "Gtk2->main".
$gladexml = Gtk2::GladeXML->new('xsshfs.glade' ) ;
# On initialise les variables du module rappels.
rappels::init () ;
# On connecte les fonctions de rappels de l'arbre xml
# leurs dfinitions qui sont contenues dans le module rappels.
$gladexml->signal_autoconnect_from_package('rappels' ) ;
1 ;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment