Subscription date : 02 September 2009
Messages : 539
|
Salut,
( oui oui, je sais, ca fait longtemps, peut-être pas assez pour que vous puissiez me resupporter
y a pas longtemps, le disque dur de mon pc fixe m'a royalement lâché,
donc, j'en rachète un, je réinstalle et malheur, je me rend compte que le dossier de backup que j'avais fait à la main n'était pas du tout à jour ...
résultat, plein de choses de perdus ...
bref, j’arrête de vous raconter ma vie
donc l'idée m'est venu de créer un dossier de backup qui serait mis à jour plus souvent.
il existe de nombreux programmes qui réalise cela, mais y en avait pas dans Cairo-Dock, qui me semblait être une bonne base pour le faire facilement, entre autre du au drag and drop, et au fait qu'on a toujours CD de démarré.
donc me voilà
donc un applet, écrit entièrement en Perl ( oui, oui, je sais )
sans avoir besoin de dépendance non présente dans le core de Perl
comment il fonctionne ? : il suffit de Drag and Drop les fichiers/dossiers que l'on souhaite sauvegarder pour qu'ils soient ajoutés a la liste.
la configuration est on ne peut plus simple : le dossier de destination, le temps d'affichage des dialogues ( réglables entre 0 à 30 secs ).
pour effectuer une sauvegarde : un simple clic gauche sur l’icône
pour éviter tout appui intempestif, il faut confirmer que l'on souhaite effectuer la sauvegarde.
les chemins sont conservés, donc un fichier présent dans : /home/ours/Images/Maison.png
se retrouvera dans /media/save/home/ours/Images/Maison.png
si on glisse dépose un dossier sur l’icône, le chemin du dossier est ajouté a la liste, par contre, lors du drag and drop, c'est le dossier, et les sous dossiers qui seront sauvegardés.
lors d'une sauvegarde, si le fichier est déjà présent dans le répertoire de sauvegarde, on vérifie le md5 des 2 et s'ils diffèrent, c'est mis a jour.
si un fichier est incopiable ou qu'un dossier n'est pas créeable, un dialogue affichera a la fin du backup qu'il y a eu des erreurs, et qu'un rapport est disponible dans le dossier de destination
un middle clic affichera en dialogue le nombre d'éléments présent dans le fichier de sauvegarde ( celui dans lequel il y a la liste des éléments à sauvegarder )
un scroll ( haut ou bas ) de la souris affichera en seticon la date du dernier backup.
dans le dossier de sauvegarde, on trouve 3 fichiers :
-le fichier avec les éléments a sauvegarder
-le fichier avec l'historique des mises a jours de fichiers ou des ajout de fichiers, on y trouve aussi la date des derniers updates
-le fichier d'erreur, qui stocke les erreurs de copie ou de création de dossiers ( qui peuvent arriver en cas de problème de droit en lecture par exemple )
dans le menu contextuel, on trouve 4 commandes :
-la commande verbose, qui permet d'écrire dans le terminal ou est lancé Cairo-Dock, par défaut, c'est inactif
-la commande sauvegarder pour effectuer une sauvegarde
-la commande nombre d éléments, identique au middle clic
-la commande date du dernier backup, identique au scroll de la souris
problèmes connus :
-menu clic droit non correctement affiché ( si qqn veut bien zieuter un coup d’œil aux alentours des lignes 273 et me dire ou je me suis trompé )
verbose devrait etre dans le sous dossier de l'applet
commande devrait creer un sous menu
les 3 derniers devraient etre dans le sous menu
a faire :
possibilité de lister l'ensemble des entrées
possibilité d'en supprimer
soucis pour les 2 précédents : la liste risque d être longue :/
changer l'icône
au démarrage de l'applet, afficher la date du dernier backup.
par contre, je suis sur mon portable qui est encore en 12.04 donc CD pas a jour, mais il m'est apparu un truc, lorsque CD plante ou que l'on l’arrête via ctrl+c dans le terminal, les applets continuent à fonctionner, et donc on peut se retrouver avec plusieurs instances d'applets fonctionnant en même temps. serait il envisageable d'envoyer via DBus, avant de charger les applets et après la création des objets applets de DBus, un on_stop, cela permettrait aux applets de ne pas être relancé en doublon ?
le lien pour le dl : https://www.dropbox.com/s/dp1bjizgizzrtnk/Backup.tar.gz
cordialement
ours
-----------------------------------
Aujourd'hui, et depuis toujours, je suis égyptienne. Un ami m'a demandé très sérieusement si, en Égypte, nous écrivions toujours en hiéroglyphes. VDM |
matttbe, Tuesday 31 December 2013 à 00:34
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Salut!
Oh oui, ça fait longtemps et tjs avec ces VDMs!
Ah cool, une nouvelle applet! Bon, en Perl mais si seules les dépendances classiques sont utilisées, ça va! Enfin, quand je le lance, j'obtiens ce message Can't locate Net/DBus.pm in @INC (you may need to install the Net::DBus module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.1 /usr/local/share/perl/5.18.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at ./Backup line 37.
BEGIN failed--compilation aborted at ./Backup line 37. (bref, il faut le paquet libnet-dbus-perl)
Je n'ai pas trop le temps pour le moment d'y regarder de plus près, j'ai juste fait un essaie et ça semble bien fonctionner
J'ai ajouté l'applet sur BZR pour que d'autres personnes puissent tester
Sinon, en vitesse voici quelques idées d'amélioration (voir demandes pour que l'applet soit diffusée sur le site):
- L'anglais: oui, faudrait que tout ce qui est affiché soit en anglais (description, dans les bulles de dialogues, etc.). Idéalement, tout devrait être en anglais même dans le code mais je peux comprendre que ça peut être bloquant
- Cool, plein de commentaires dans le code
- Le dossier par défaut devrait être modifié (ex: supporter le '~' et utiliser '~/Backup' par défaut et créer ce dossier s'il n'existe pas voir notifier l'utilisateur s'il veut utiliser ce dossier et qu'il ne contient pas le fichier qui liste les données à sauvegarder?)
- Pour les config, il faudrait reprendre le début d'une autre applet qui a été actualisée. N'hésite pas à utiliser le PPA pour avoir la dernière version stable
- L'icône "n'est pas trop dans le thème" (idéalement du genre 'gtk-save' du thème Humanity)
- Ton programme est lancé avec plusieurs arguments: l'id, le chemin du bus D-Bus, le chemin du fichier de config, le dossier data du dock, le nom de l'exécutable qui a lancé l'applet et le PID de celui qui a lancé l'applet, par exemple:
/usr/bin/perl ./Backup 6 /org/cairodock/CairoDock/Backup /home/xxx/.config/cairo-dock/current_theme/plug-ins/Backup/Backup.conf /home/xxx/.config/cairo-dock cairo-dock 17835 N'hésite pas à utiliser ces arguements plutôt qu'indiquer des chemins "en dur"
- Pour ton soucis avec le dock qui est coupé, tu peux donc vérifier de temps en temps si le PID est toujours vivant.
- Ce serait cool d'avoir une courte description et un bref manuel (en anglais et concis: drop, click, middle click, scroll) dans le fichier auto-load.conf
Voilà voilà!
PS: si l'utilisation de BZR pose soucis (malgré le wiki), pas besoin de perdre trop de temps avec ça (mais c'est plus facile pour nous si les modifs sont faites sur une branche qu'il suffit de merger ) |
Subscription date : 02 September 2009
Messages : 539
|
salut
ah oui, effectivement, cette dépendance est nécessaire :/
- ok, je vais traduire les textes en anglais, mais à mon avis, quelqu'un devrait vérifier après moi pour faire passer de petit anglais à anglais.
- oui, pour une fois j'ai fait un effort sur les commentaires
- ok pour le dossier de destination, je m'en occupe
- ok pour le dossier de config
- ok pour l'icone ( je viens de le faire )
- ok pour les arguments, je vais virer ce qui est en dur
- ok, je rajoute la description
pour bzr, pas de soucis pour que je m'y mette, mais la ou je suis actuellement, ma connection est limitée, je n'ai pas acces a ssh, hors bzr utilise ssh de mémoire, donc impossible pour le moment :/
je tiens au jus des que j'ai avancé.
cordialement
ours
------------------------------------------
Aujourd'hui, repas chez ma belle-mère. À la première fourchette, je fais une grimace incontrôlable à cause de l'acidité. Ma belle-mère, m'ayant vue, demande ce qu'il se passe. Ne voulant pas être impolie, j'ai répondu que c'était trop chaud. Ç'aurait pu marcher si ça n'avait pas été une salade. VDM |
fabounet, Monday 06 January 2014 à 16:48
|
|
Subscription date : 30 November 2007
Messages : 17118
|
lorsque CD plante ou que l'on l’arrête via ctrl+c dans le terminal, les applets continuent à fonctionner, et donc on peut se retrouver avec plusieurs instances d'applets fonctionnant en même temps
les applets sont arrêtées puis relancées lorsque CD redémarre, donc normalement pas de doublon
possibilité de lister l'ensemble des entrées
possibilité d'en supprimer
soucis pour les 2 précédents : la liste risque d être longue :/
changer l'icône
au démarrage de l'applet, afficher la date du dernier backup.
attention à ne pas en faire une usine à gaz
l'idée est simplement de pouvoir copier des fichiers dans un répertoire donné, rapidement
pour le reste, le navigateur de fichiers est un outil plus adapté
idée: un message quand la copie est finie, ou si un problème est survenu (important)
idéalement, une barre de progression s'il est possible de récupérer l'avancement de la copie
comme info utiles: date de dernière copie, taille du répertoire |
matttbe, Wednesday 08 January 2014 à 00:08
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Et vérifier s'il y a assez de place pour le backup?  |
Subscription date : 02 September 2009
Messages : 539
|
salut,
fabounet :
les applets sont arrêtées puis relancées lorsque CD redémarre, donc normalement pas de doublon
euh, je vais revérifier
fabounet : pour le reste, le navigateur de fichiers est un outil plus adapté
pour la possibilité de lister ou de supprimer un fichier, je pensais tout simplement l'afficher via "xdg-open"
fabounet : idée: un message quand la copie est finie, ou si un problème est survenu (important)
deja present
fabounet : idéalement, une barre de progression s'il est possible de récupérer l'avancement de la copie
par entrée, en clair, si y a 1 fichier de 1k et 1 dossier de 50M, il sera à 50% après le fichier de 1k car à l'heure actuelle, je n'analyse les entrées qu'au fur et à mesure ( je traite l'entrée 1 puis l'entrée 2 et ainsi de suite ), sinon, il faudrait que je liste tout en premier, et ensuite, je copie, mais c'est faisable
fabounet : comme info utiles: date de dernière copie, taille du répertoire
je dois rajouter l'affichage de la date de la dernière copie au chargement de l'applet, elle s'affiche déjà après l'update.
par taille du répertoire, je présume que tu parles de la taille du dossier de sauvegarde ?
matttbe : Et vérifier s'il y a assez de place pour le backup?
ah oui, pas bête, ça éviterai de lancer un backup qui de toute manière ne fonctionnera pas entièrement.
j'ai actuellement rajouté les fonctions mises dans le premier message de mat, j'en suis à la traduction des commentaires
cordialement
ours
-------------------------------------------
Aujourd'hui, journaliste, je viens de me voir offrir un poste de correspondant dans un charmant pays africain au motif que l'actuel titulaire du poste ne supporte plus les menaces de mort. VDM |
fabounet, Tuesday 14 January 2014 à 15:21
|
|
Subscription date : 30 November 2007
Messages : 17118
|
euh, je vais revérifier
oui, j'ai bien dit "normalement"
pour la possibilité de lister ou de supprimer un fichier, je pensais tout simplement l'afficher via "xdg-open"
ah oui, que l'applet permette d'ouvrir le dossier, je suis tout à fait d'accord c'est même un candidat pour le clic milieu
par entrée, en clair, si y a 1 fichier de 1k et 1 dossier de 50M, il sera à 50% après le fichier de 1k car à l'heure actuelle, je n'analyse les entrées qu'au fur et à mesure
ok, c'est déjà bien
je pensais à un truc plus évolué (où la barre avance à chaque % de la taille totale, donc meme avec un seul gros fichier, on aurait une barre qui avance). mais ça implique de pouvoir récupérer l'avancement d'une copie, et en langage de script je ne sais pas faire.
par taille du répertoire, je présume que tu parles de la taille du dossier de sauvegarde ?
yep |
SQP, Thursday 16 January 2014 à 12:18
|
|
Subscription date : 03 July 2010
Messages : 1081
|
Salut à tous. Je suis de retour, avec encore plein de trucs à poster bientôt.
fabounet : les applets sont arrêtées puis relancées lorsque CD redémarre, donc normalement pas de doublon
Les applets non plantées s’arrêtent bien. Celles qui ont un bug dans la section "on_stop_module" vont rester, ou si elles ne sont plus capables de traiter le message (si bloquées dans une autre section de code).
C'est un truc que j'ai bien pu confirmer ces derniers jours en remettant à jour le binding golang.
Pour la progress bar, un truc simple pour avoir un retour d'info sur l'activité même si on ne sait pas, ou ne veut pas (du peut ramer sur un disque réseau) calculer un pourcentage d'avancement, c'est de faire bouger la barre de façon régulière. Je viens de faire un truc similaire pour un de mes applets en golang (principe du K2000):
func (app *AppletUpdate) activityBar(c <-chan time.Time) {
var val, step float64
step = 0.05
for _ = range c {
if val+step < 0 || 1 < val+step {
step = -step
}
val += step
app.RenderValues(val)
}
}
et le call
app.AddDataRenderer("progressbar", 1, "")
defer app.AddDataRenderer("progressbar", 0, "")
t := time.NewTicker(100 * time.Millisecond)
defer t.Stop()
go app.activityBar(t.C) // threaded
// launch action that can be long.
J'adore le golang. |
fabounet, Thursday 16 January 2014 à 17:35
|
|
|