Pages : 1
#1 Le 09/11/2009, à 12:32
- CKDevelop
ForemostGUI
lu all,
bon il y a un certain temps j'avais mis en place une interface graphique pour Foremost que j'avais nommé foremost-FP.
Mais depuis j'ai dû revoir certains trucs dans l'interface et, j'ai dû rajouter quelque options....
Donc au final je l'ai carrément renommé, la dernière mise à jour à été effectué hier:
http://www.ckdevelop.org/news/news.php?id=17
voilà en espérant que la nouvelle version intéresse un peu plus de monde...
++CKDevelop
Dernière modification par CKDevelop (Le 09/11/2009, à 13:04)
Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy
Hors ligne
#2 Le 10/11/2009, à 12:24
- Ekimoz
Re : ForemostGUI
Tiens, j'ai vu cette interface trainer sur Tux@25 Blog..cool et encore une fois de plus bien pratique...
enfaite si j'ai bien compris tu fais que des interface graphique pour des applications en ligne de commande...?
sinon cool
Hors ligne
#3 Le 10/11/2009, à 14:09
- CKDevelop
Re : ForemostGUI
tous compris.. merci
++
Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy
Hors ligne
#4 Le 04/12/2012, à 14:20
- CKDevelop
Re : ForemostGUI
Ok je reviens avec une nouvelle versionde ForemostGUI, j'ai tout revus.....fini le freepascal, bienvenue à zenity
#!/bin/bash
function _foremost() {
#On crée le formulaire en stockant les valeurs de sortie dans $cfgpass :/
parts=`df -Th | grep -e "^/dev/*" | tr "\n" "|"`
cfg=`zenity --forms \
--title="ForemostGUI" \
--text="Configurer votre récupération de données" \
--width="800" \
--add-list="Partitions :" \
--column-values="Partitions :" \
--list-values="${parts%?}" \
--add-entry="Extentions :" \
--add-entry="Destination :
(default:$PWD/output)" \
--separator="@"`
#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
#On quitte le script
exit
fi
#Sinon on continue
addr=`echo "$cfg" | cut -d " " -f1` #Addresse absolue de la partitions sélection
ext=`echo "$cfg" | cut -d "@" -f2` #extentions des fichiers à récupérer
outdir=`echo "$cfg" | cut -d "@" -f3` #dossier de sortie
if [ "$ext" != "" ]; then
ext="$ext"
else
ext="all"
fi
if [ "$outdir" != "" ]; then
outdir="-o $outdir"
fi
#on lance foremost
gksudo -m "L'execution de Foremost nécessite les privilèges administrateur" "foremost -w -q -Q -t '$ext' -i '$addr' $outdir" &
pid=$!
zenity --progress --pulsate --auto-close --text="Récupération en cours..." --title="ForemostGUI"
if [ "$?" -eq 1 ]; then
gksudo -m "La fermeture de Foremost nécessite les privilèges administrateur" "killall foremost"
else
zenity --question --title="ForemostGUI" --text="La récupération est terminé.\nVos fichiers sont récupérable ici:\n\"$PWD/output\" avec les privilèges administrateur"
fi
_foremost
}
_foremost
Il me reste encore à le poffiner, mais cela fait un bout de temps que je devais revoir le petit, mais le temps n'été pas de la partie.
J'ai pris en compte les nombreuse remarque qui traine sur le forum, donc
je vais rajouter certaines fonctionnalités:
-tri des fichier de sorti suivant leur taille (fort pratique pour les photos, car il devient très facile de récupérer c'est photos perso au lieu des image cache de firefox)
-prévoir une meilleur gestion du processus de foremost (histoire d'avoir une jolie barre de progression)
-ajouter l'option pour définir le dossier de sortie
-faire un paquet propre
-demander à une âme charitable de déposer le projet sur launchpad car perso je galère et ça me soûle grave.
si tout ce passe bien dans la semaine on as un truc de valable. quoi qu'il en soit je tiens à m'excuser pour ma longue absence et donc à la non évolution de mes divers projet, que je compte reprendre en main d'ici peu...enfin si je peu, obligation professionnel font que ....
Dernière modification par CKDevelop (Le 04/12/2012, à 17:56)
Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy
Hors ligne
#5 Le 06/02/2013, à 16:26
- xavier4811
Re : ForemostGUI
Bonjour,
Quelques idées pour la suite du développement.
#!/bin/bash
# zenity process box
# affichée tant que le process en argument existe, cancel déclenche l'arrêt de foremost
function _wait_process() {
while pgrep "^"$1"$" &>/dev/null; do echo yes && sleep 1; done | zenity --progress --pulsate --auto-close --text="Récupération en cours..." --title="ForemostGUI"
}
# zenity dialog box
# sélection des paramêtres de récupération
function _select_options(){
options=`zenity --list \
--title="ForemostGUI" \
--text=" Sélectionnez les options de récupération\n Par défaut, le rapport seul est généré" \
--checklist \
--column="Cocher" \
--column="Description" \
True "Générer un rapport sans récupérer" "\-w" \
False "Indirect block detection (fichiers Unix/Linux)" "\-d" \
False Verbose "\-v" \
False "Quick mode (Analyse seulement le début des secteurs, déconseillé sur NTFS)" "\-q" \
False "All headers (y compris les fichiers corrompus)" "\-a" \
--column="Option" \
--hide-column="3" \
--print-column="3" \
--separator=" " \
--width="800" \
--height="280"`
if [ "$?" -eq 1 ]; then
echo 1
else
options=$(echo $options | sed 's/\\//g')
echo $options
fi
}
# zenity dialog box
# sélection des types de fichiers
function _select_extensions(){
extensions=`zenity --list \
--title="ForemostGUI" \
--text=" Sélectionnez les types de fichiers\n Par défaut, tous les types" \
--checklist \
--column="Cocher" \
--column="Description" \
False "jpg Images .jpg, .jfif et exif" jpg \
False "gif Images .gif" gif \
False "png Images .png" png \
False "bmp Images bitmap" bmp \
False "avi Vidéos .avi seulement" avi \
False "exe Exécutables .exe et .dll" exe \
False "mpg Vidéos .mpg" mpg \
False "wav Audio .wav" wav \
False "riff Vidéos .avi et .riff" riff \
False "wmv Windows média (audio et vidéo)" wmv \
False "mov Vidéos .mov" mov \
False "pdf Portable document format" pdf \
False "ole Documents PowerPoint, Word, Excel, Access, et StarWriter" ole \
False "doc Documents Word uniquement" doc \
False "zip Fichier zippés, y compris .jar et xml comme les formats openoffice" zip \
False "rar Archive .rar" rar \
False "htm Fichiers .htm" htm \
False "cpp Fichiers source C,C++ ou autres" cpp \
--column="Option" \
--hide-column="3" \
--print-column="3" \
--separator="," \
--width="800" \
--height="270"`
if [ "$?" -eq 1 ]; then
echo 1
else
echo $extensions
fi
}
function _select_outputdir() {
outputdir=`zenity --file-selection \
--filename "/home/$USER/" \
--directory`
if [ "$?" -eq 1 ]; then
echo 1
else
echo $outputdir
fi
}
function _foremost() {
# Formulaire 1, options de foremost
params=$(_select_options)
if [ "$params" = "1" ]; then
exit
fi
# paramètres par défaut -w
if ! [ -n "$params" ]
then params="-w"
fi
# Formulaire 2, types de fichiers
extension=$(_select_extensions)
if [ "$extension" = "1" ]; then
exit
fi
# types de fichiers par défaut : all
if ! [ -n "$extension" ]
then extension="all"
fi
# Formulaire 3, dossier de sortie
outdir=$(_select_outputdir)
if [ "$outdir" = "1" ]; then
exit
fi
# dossier de sortie par défaut /home$USER/output
if ! [ -n "$outdir" ]
then outdir="/home/$USER/output"
fi
# On crée le formulaire en stockant les valeurs de sortie dans $cfgpass :/
parts=`df -Th | grep -e "^/dev/*" | tr "\n" "|"`
cfg=`zenity --forms \
--title="ForemostGUI" \
--text="Configurer votre récupération de données" \
--width="800" \
--add-list="Partitions :" \
--column-values="Partitions :" \
--list-values="${parts%?}"`
#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
#On quitte le script
exit
fi
#Sinon on continue
addr=`echo "$cfg" | awk '{ print $1}'` #Addresse absolue de la partition sélectionnée
if [ -z "$outdir" ]; then
outdir="$PWD/output"
fi
params="$params -t $extension -i $addr -o $outdir"
#on lance foremost
gksudo -m "L'execution de Foremost nécessite les privilèges administrateur" "foremost $params" &>$HOME/foremost_log.txt &
# zenity process box
_wait_process gksudo
# zenity process box
_wait_process foremost
# on redemande le mot de passe si on annule avant la fin, sinon on affiche le résultat
if [ "$(pgrep "^foremost$")" ]
then gksudo -m "La fermeture de Foremost nécessite les privilèges administrateur" "pkill -15 foremost"
else
if [ -s "$HOME/foremost_log.txt" ]; then
# on filtre le contenu du fichier de log
if [ "$(grep -i ' error ' $HOME/foremost_log.txt)" ]; then
mapfile -t filecontent < $HOME/foremost_log.txt
errors=$(printf "%s\n" "${filecontent[@]}")
fi
# dialog box différente s'il y a des erreurs
if [ -n "$errors" ]; then
zenity --error --title="ForemostGUI" \
--text="La récupération est terminée.\nles erreurs suivantes ont été détectées :\n\n\"$errors\"" \
--width="400"
else
gksudo -m "Le changement de droits nécessite les privilèges administrateur" "chown -R $USER:$USER $outdir"
for dirs in `printf "%s\n" $outdir/* | grep -v "audit"`
do find $dirs -maxdepth 1 -type f -size -11k \
-exec mkdir -p $dirs/moins_de_10k \; \
-exec mv {} $dirs/moins_de_10k/ \; , \
-type f -size +10k -size -1024k \
-exec mkdir -p $dirs/entre_10k_et_1M \; \
-exec mv {} $dirs/entre_10k_et_1M/ \; , \
-type f -size +1023k \
-exec mkdir -p $dirs/plus_de_1M \; \
-exec mv {} $dirs/plus_de_1M/ \;
done
zenity --info --title="ForemostGUI" \
--text="La récupération est terminée.\nVos fichiers et/ou le rapport sont récupérables ici:\n\"$outdir\""
fi
else
# Si le fichier de log est vide
zenity --info --title="ForemostGUI" \
--text="La récupération a été annulée ou une erreur bloque l'éxécution de foremost\nLancez ce script dans un terminal et vérifiez la sortie."
exit
fi
fi
_foremost
}
_foremost
Dernière modification par xavier4811 (Le 10/02/2013, à 01:07)
Hors ligne
#6 Le 07/02/2013, à 12:19
- CKDevelop
Re : ForemostGUI
Bonjour,
Quelques idées pour la suite du développement.
#!/bin/bash # zenity process box # affichée tant que le process en argument existe function _wait_process() { while pgrep $1 &>/dev/null; do echo yes && sleep 1; done | zenity --progress --pulsate --auto-close --text="Récupération en cours..." --title="ForemostGUI" } # zenity dialog box # sélection des paramêtres de récupération function _select_options(){ options=`zenity --list \ --title="ForemostGUI" \ --text=" Sélectionnez les options de récupération\n Par défaut, le rapport seul est généré" \ --checklist \ --column="Cocher" \ --column="Description" \ False "Générer un rapport sans récupérer" "\-w" \ False "Indirect block detection (fichiers Unix/Linux)" "\-d" \ False Verbose "\-v" \ False "Quick mode (Analyse seulement le début des secteurs, déconseillé sur NTFS)" "\-q" \ False "All headers (y compris les fichiers corrompus)" "\-a" \ --column="Option" \ --hide-column="3" \ --print-column="3" \ --separator=" " \ --width="800" \ --height="270"` if [ "$?" -eq 1 ]; then echo 1 else options=$(echo $options | sed 's/\\//g') echo $options fi } # zenity dialog box # sélection des types de fichiers function _select_extensions(){ extensions=`zenity --list \ --title="ForemostGUI" \ --text=" Sélectionnez les types de fichiers\n Par défaut, tous les types" \ --checklist \ --column="Cocher" \ --column="Description" \ False "jpg Images .jpg, .jfif et exif" jpg \ False "gif Images .gif" gif \ False "png Images .png" png \ False "bmp Images bitmap" bmp \ False "avi Vidéos .avi seulement" avi \ False "exe Exécutables .exe et .dll" exe \ False "mpg Vidéos .mpg" mpg \ False "wav Audio .wav" wav \ False "riff Vidéos .avi et .riff" riff \ False "wmv Windows média (audio et vidéo)" wmv \ False "mov Vidéos .mov" mov \ False "pdf Portable document format" pdf \ False "ole Documents PowerPoint, Word, Excel, Access, et StarWriter" ole \ False "doc Documents Word uniquement" doc \ False "zip Fichier zippés, y compris .jar et xml comme les formats openoffice" zip \ False "rar Archive .rar" rar \ False "htm Fichiers .htm" htm \ False "cpp Fichiers source C,C++ ou autres" cpp \ --column="Option" \ --hide-column="3" \ --print-column="3" \ --separator="," \ --width="800" \ --height="270"` if [ "$?" -eq 1 ]; then echo 1 else echo $extensions fi } # TODO Formulaire de choix pour le dossier de sortie function _foremost() { # Formulaire 1, options de foremost params=$(_select_options) if [ "$params" = "1" ]; then exit fi # paramètres par défaut -w if ! [ -n "$params" ] then params="-w" fi # Formulaire 2, types de fichiers extension=$(_select_extensions) if [ "$extension" = "1" ]; then exit fi # types de fichiers par défaut : all if ! [ -n "$extension" ] then extension="all" fi # On crée le formulaire en stockant les valeurs de sortie dans $cfg :/ parts=`df -Th | grep -e "^/dev/*" | tr "\n" "|"` cfg=`zenity --forms \ --title="ForemostGUI" \ --text="Configurer votre récupération de données" \ --width="800" \ --add-list="Partitions :" \ --column-values="Partitions :" \ --list-values="${parts%?}" \ --add-entry="Destination : (default:$PWD/output)" \ --separator="@"` #Si on clique sur le bouton Annuler if [ "$?" -eq 1 ]; then #On quitte le script exit fi #Sinon on continue addr=`echo "$cfg" | awk -F"@| +" '{ print $1}'` #Addresse absolue de la partitions sélection outdir=`echo "$cfg" | awk -F"@| +" '{ print $8}'` #dossier de sortie if [ "$outdir" = "" ]; then outdir="$PWD/output" fi params="$params -t $extension -i $addr -o $outdir" #on lance foremost gksudo -m "L'execution de Foremost nécessite les privilèges administrateur" "foremost $params" &>$HOME/foremost_log.txt & # zenity process box # En attendant la saisie du mot de passe. _wait_process gksudo # zenity process box # En attendant la fin de la récupération. _wait_process foremost # on redemande le mot de passe si on annule avant la fin, sinon on affiche le résultat if [ "$(pgrep foremost)" ] then gksudo -m "La fermeture de Foremost nécessite les privilèges administrateur" "pkill -15 foremost" else if [ -s "$HOME/foremost_log.txt" ]; then # on filtre le contenu du fichier de log if [ "$(grep -i error $HOME/foremost_log.txt)" ]; then mapfile -t filecontent < $HOME/foremost_log.txt errors=$(printf "%s\n" "${filecontent[@]}") fi # dialog box différente s'il y a des erreurs if [ -n "$errors" ]; then zenity --error --title="ForemostGUI" \ --text="La récupération est terminée.\nles erreurs suivantes ont été détectées :\n\n\"$errors\"" \ --width="400" else zenity --info --title="ForemostGUI" \ --text="La récupération est terminée.\nVos fichiers et/ou le rapport sont récupérables ici:\n\"$outdir\" avec les privilèges administrateur" fi else # Si le fichier de log est vide zenity --info --title="ForemostGUI" \ --text="La récupération a été annulée ou une erreur bloque l'éxécution de foremost\nLancez ce script dans un terminal et vérifiez la sortie." fi fi _foremost } _foremost
cool merci
je regarde ça ce soir et je fait une mise à jour
++
Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy
Hors ligne
Pages : 1