Commit 134eaefb authored by David's avatar David

Passage en fichier ini pour les sauvegarde + XDG : ~/.config/xsshfs + Oublie de traduction

parent 2c2854ed
......@@ -6,7 +6,7 @@
<property name="can_focus">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">Xsshfs - Erreur</property>
<property name="title" translatable="yes">Xsshfs - Error</property>
<property name="window_position">center-on-parent</property>
<property name="default_width">500</property>
<property name="icon">/usr/share/xsshfs/xsshfs.svg</property>
......
......@@ -3,14 +3,14 @@ package rappels ;
use strict;
use warnings "all";
use Getopt::Long;
use Config::Tiny;
use Locale::gettext;
################# A VOIRRR
bindtextdomain("xsshfs", "./locale");
# For translation
textdomain("xsshfs");
# Version du programme (et des base)
my $version = '0.5'; my $dateVersion = 'Juillet 2012';
my $version = '0.6'; my $dateVersion = 'Aug 2012';
# parametres generaux du programme
my $params = {
......@@ -20,6 +20,9 @@ my $params = {
'help' => 0,
'debug' => 0,
'versionOption' => 0,
'configDir' => "$ENV{HOME}/.config/xsshfs",
'configParam' => "$ENV{HOME}/.config/xsshfs/param.ini",
'configData' => "$ENV{HOME}/.config/xsshfs/data.ini",
'fichierConfig' => "$ENV{HOME}/.xsshfs",
'comboSetText' => ""
};
......@@ -46,18 +49,18 @@ Perl version : $]
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
- sshfs
- ssh-askpass
- perl
- libgtk2-gladexml-perl
- libimage-librsvg-perl
- liblocale-gettext-perl
- libconfig-tiny-perl
LICENSE:
Copyright David MERCEREAUt <david.mercereau [aro] gmail [.] com>. This program is free software;
......@@ -76,8 +79,9 @@ 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>
Author : David MERCEREAUt <david.mercereau [aro] gmail [.] com>
Contributor : Laurent CORROCHANO <l.corrochano [aro] free [.] fr>
Translator : Fernando CANIZO <conan [aro] lugmen.org [.] ar> http://conan.muriandre.com
Site : http://xsshfs.zici.fr
TEXTHELP
......@@ -90,11 +94,20 @@ use vars qw($gladexml) ;
# On initialise la valeur de la variable quand l'arbre est créé
# dans le module principale
# Chargement des fichiers ini
my $configData = Config::Tiny->new;
$configData = Config::Tiny->read($params->{configData});
my $configParam = Config::Tiny->new;
$configParam = Config::Tiny->read($params->{configParam});
############
# Programme principal
############
sub init {
if (! -d $params->{configDir}) {
mkdir $params->{configDir}
}
# Démarage de l'interface graphique
$gladexml = $X::gladexml ;
# Valeur d'environement par default pour les nouvelle connexion
......@@ -138,7 +151,7 @@ sub on_bouton_monter_new_clicked {
# Vérification si au moin le hosts à été renseigné
if ($data_host eq "")
{
Erreur_Dialog("Erreur : \n\t- L'adresse du serveur est obligatoire")
Erreur_Dialog(gettext("The server address is required"), '')
} else
{
# Demande d'enregistrement
......@@ -156,21 +169,13 @@ sub on_bouton_monter_sav_clicked {
my $nom_connexion_enregistree = $gladexml->get_widget('connexion_sav_combo')->entry->get_text();
if ($nom_connexion_enregistree ne $params->{comboSetText} && $nom_connexion_enregistree ne "") {
# Exploration du fichiers de sauvegarde
open (FICSAV_R, "$params->{fichierConfig}");
while (<FICSAV_R>) {
my @data_sav = split ("#", $_);
if ($data_sav[0] eq $nom_connexion_enregistree) {
# Eviter les warnings quand les champs optionnels sont vides
if (!defined $data_sav[6]) {
$data_sav[6] = '';
}
if (!defined $data_sav[7]) {
$data_sav[7] = '';
}
mount_sshfs($data_sav[1], $data_sav[2], $data_sav[3], $data_sav[4], $data_sav[5], $data_sav[6], $data_sav[7]);
}
}
close(FICSAV_R);
mount_sshfs($configData->{"$nom_connexion_enregistree"}->{user},
$configData->{"$nom_connexion_enregistree"}->{host},
$configData->{"$nom_connexion_enregistree"}->{dir},
$configData->{"$nom_connexion_enregistree"}->{mountpoint},
$configData->{"$nom_connexion_enregistree"}->{port},
$configData->{"$nom_connexion_enregistree"}->{keyssh},
$configData->{"$nom_connexion_enregistree"}->{options});
}
}
# Démontage
......@@ -221,16 +226,12 @@ sub actualiser_connexion_sav_combo{
my (@liste_sav);
my $nb_item = 0;
# Si le fichier de sauvegarde existe
if (-e $params->{fichierConfig})
if (-e $params->{configData})
{
# Lecture du fichier de sauvegarde
open (FICSAV, $params->{fichierConfig});
while (<FICSAV>) {
my ($var_add_sav) = split ("#", $_);
@liste_sav = (@liste_sav, $var_add_sav);
foreach my $section(sort keys %$configData) {
@liste_sav = (@liste_sav, $section);
$nb_item = ($nb_item + 1);
}
close(FICSAV);
}
if ($nb_item eq 0) {
$gladexml->get_widget("connexion_sav_combo")->set_popdown_strings("");
......@@ -280,32 +281,29 @@ sub on_host_or_user_changed {
sub Enregistrer_connexion {
debug("Enregistrement de la connexion...");
my $data_nom_sav = $gladexml->get_widget('Sav_Nom')->get_text();
my $data_user = $gladexml->get_widget('user')->get_text();
my $data_host = $gladexml->get_widget('host')->get_text();
my $data_dir = $gladexml->get_widget('dir')->get_text();
my $data_mountpoint = $gladexml->get_widget('mountpoint')->get_text();
my $data_port = $gladexml->get_widget('port')->get_text();
my $data_keyssh = $gladexml->get_widget('keyssh')->get_filenames();
my $data_options = $gladexml->get_widget('options')->get_text();
# Vérification de la non existance de la connexion
my $erreur_sav_existe = 0;
open (FICSAV, $params->{fichierConfig});
while (<FICSAV>) {
my ($var_nom_sav) = split ("#", $_);
if ($var_nom_sav eq $data_nom_sav){
$erreur_sav_existe = 1;
}
my $data_keyssh;
if ($gladexml->get_widget('keyssh')->get_filenames()) {
$data_keyssh = $gladexml->get_widget('keyssh')->get_filenames();
} else {
$data_keyssh = '';
}
close(FICSAV);
if ($erreur_sav_existe == 1) {
Erreur_Dialog("Impossible d'enregistrer : \n\t-Ce nom de sauvegarde existe!");
# Vérification de la non existance de la connexion
if ($configData->{$data_nom_sav}) {
Erreur_Dialog(gettext("Can not record : the registration name already exists!"), "");
&fermeture_nom_sav;
my $Nom_Sav_Dialog = $gladexml->get_widget('Nom_Sav_Dialog')->run;
} else {
# Enregistrement de la connexion
open(FICSAV_W, ">> $params->{fichierConfig}");
print FICSAV_W "$data_nom_sav#$data_user#$data_host#$data_dir#$data_mountpoint#$data_port#$data_keyssh#$data_options#\n";
close(FICSAV_W);
$configData->{"$data_nom_sav"} = {
user => $gladexml->get_widget('user')->get_text(),
host => $gladexml->get_widget('host')->get_text(),
dir => $gladexml->get_widget('dir')->get_text(),
mountpoint => $gladexml->get_widget('mountpoint')->get_text(),
port => $gladexml->get_widget('port')->get_text(),
options => $gladexml->get_widget('options')->get_text(),
keyssh => $data_keyssh
};
$configData->write($params->{configData});
&fermeture_nom_sav;
&actualiser_connexion_sav_combo;
}
......@@ -313,22 +311,9 @@ sub Enregistrer_connexion {
sub effacer_connexio_enregistree{
my ($nom_connexion_enregistree) = @_;
debug("Effacement de $nom_connexion_enregistree");
if ($nom_connexion_enregistree ne $params->{comboSetText})
{
rename $params->{fichierConfig}, "$params->{fichierConfig}.back";
# Lecture du fichier de sauvegarde back
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)
{
print FICSAV_W $_;
}
}
close(FICSAV_W);
close(FICSAV_R);
unlink "$params->{fichierConfig}.back";
if ($nom_connexion_enregistree ne $params->{comboSetText}) {
delete $configData->{$nom_connexion_enregistree};
$configData->write($params->{configData});
}
}
# Mount
......@@ -350,13 +335,14 @@ sub mount_sshfs {
mkdir $data_mountpoint;
}
# Préparation de la commande
my $cmd="sshfs $data_user\@$data_host:$data_dir $data_mountpoint -p $data_port 2> /tmp/xsshfs-sortie";
if ($data_keyssh ne "" && $data_keyssh ne "\n") {
my $cmd="sshfs $data_user\@$data_host:$data_dir $data_mountpoint -p $data_port";
if ($data_keyssh) {
$cmd="$cmd -o IdentityFile=$data_keyssh";
}
if ($data_options ne "" && $data_options ne "\n") {
if ($data_options) {
$cmd="$cmd $data_options";
}
$cmd="$cmd 2>/tmp/xsshfs-sortie";
# Exécution de la commande :
debug($cmd);
system($cmd);
......
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