mirror of
https://github.com/Llewellynvdm/Tomb.git
synced 2024-11-05 04:47:56 +00:00
check if umount is succesfull
tomb-status now quits only when tomb is really unmounted
This commit is contained in:
parent
505442c394
commit
542bcb1577
22
src/tomb
22
src/tomb
@ -413,9 +413,9 @@ mount_tomb() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
act "encrypted storage filesystem check"
|
act "encrypted storage filesystem check"
|
||||||
fsck.ext4 -p -C0 /dev/mapper/${mapper}
|
fsck -p -C0 /dev/mapper/${mapper}
|
||||||
|
|
||||||
mount -t ext4 -o rw,noatime,nodev /dev/mapper/${mapper} ${MOUNT}
|
mount -o rw,noatime,nodev /dev/mapper/${mapper} ${MOUNT}
|
||||||
|
|
||||||
notice "encrypted storage $FILE succesfully mounted on $MOUNT"
|
notice "encrypted storage $FILE succesfully mounted on $MOUNT"
|
||||||
exec_as_user tomb-status ${mapper} ${FILE} ${MOUNT}
|
exec_as_user tomb-status ${mapper} ${FILE} ${MOUNT}
|
||||||
@ -466,17 +466,20 @@ umount_tomb() {
|
|||||||
# exit 1
|
# exit 1
|
||||||
# fi
|
# fi
|
||||||
|
|
||||||
umount ${mapper}
|
|
||||||
# if ! [ $? = 0 ]; then
|
|
||||||
# error "error occurred in umount ${mapper}"
|
|
||||||
# fi
|
|
||||||
|
|
||||||
basemap=`basename $mapper`
|
basemap=`basename $mapper`
|
||||||
|
tombname=`echo ${basemap} | cut -d. -f2`
|
||||||
|
|
||||||
|
errno=`umount ${mapper}`
|
||||||
|
if ! [ $? = 0 ]; then
|
||||||
|
exec_as_user tomb-notify "Tomb '$tombname' is too busy." \
|
||||||
|
"Close all applications and file managers, then try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
cryptsetup luksClose $basemap
|
cryptsetup luksClose $basemap
|
||||||
if ! [ $? = 0 ]; then
|
if ! [ $? = 0 ]; then
|
||||||
error "error occurred in cryptsetup luksClose ${basemap}"
|
error "error occurred in cryptsetup luksClose ${basemap}"
|
||||||
exit 0
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
losetup -d "/dev/`echo $basemap | cut -d. -f4`"
|
losetup -d "/dev/`echo $basemap | cut -d. -f4`"
|
||||||
@ -492,7 +495,8 @@ umount_tomb() {
|
|||||||
# fi
|
# fi
|
||||||
|
|
||||||
notice "crypt storage ${mapper} unmounted"
|
notice "crypt storage ${mapper} unmounted"
|
||||||
exec_as_user tomb-notify "Tomb closed: `echo ${basemap} | cut -d. -f2`" "Your bones will Rest In Peace."
|
exec_as_user tomb-notify "Tomb closed: $tombname" "Your bones will Rest In Peace."
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# install mime-types, bells and whistles for the desktop
|
# install mime-types, bells and whistles for the desktop
|
||||||
|
@ -20,6 +20,11 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <libgen.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#include <libnotify/notify.h>
|
#include <libnotify/notify.h>
|
||||||
@ -54,6 +59,7 @@ int main(int argc, char **argv) {
|
|||||||
gboolean push_in = true;
|
gboolean push_in = true;
|
||||||
|
|
||||||
char tomb_file[512];
|
char tomb_file[512];
|
||||||
|
char tooltip[256];
|
||||||
|
|
||||||
gtk_set_locale();
|
gtk_set_locale();
|
||||||
gtk_init(&argc, &argv);
|
gtk_init(&argc, &argv);
|
||||||
@ -81,7 +87,9 @@ int main(int argc, char **argv) {
|
|||||||
status_tomb = gtk_status_icon_new_from_pixbuf(pb_monmort);
|
status_tomb = gtk_status_icon_new_from_pixbuf(pb_monmort);
|
||||||
// gtk_status_icon_set_name(status_tomb, "tomb");
|
// gtk_status_icon_set_name(status_tomb, "tomb");
|
||||||
gtk_status_icon_set_title(status_tomb, "Tomb");
|
gtk_status_icon_set_title(status_tomb, "Tomb");
|
||||||
gtk_status_icon_set_tooltip_text (status_tomb, "Tomb - crypto undertaker");
|
|
||||||
|
snprintf(tooltip,255,"Tomb in %s",mountpoint);
|
||||||
|
gtk_status_icon_set_tooltip_text (status_tomb, tooltip);
|
||||||
|
|
||||||
// LEFT click menu
|
// LEFT click menu
|
||||||
menu_left = (GtkMenu*) gtk_menu_new();
|
menu_left = (GtkMenu*) gtk_menu_new();
|
||||||
@ -158,6 +166,7 @@ gboolean cb_view(GtkWidget *w, GdkEvent *e) {
|
|||||||
|
|
||||||
gboolean cb_close(GtkWidget *w, GdkEvent *e) {
|
gboolean cb_close(GtkWidget *w, GdkEvent *e) {
|
||||||
pid_t cpid = fork();
|
pid_t cpid = fork();
|
||||||
|
int res;
|
||||||
if (cpid == -1) {
|
if (cpid == -1) {
|
||||||
fprintf(stderr,"error: problem forking process\n");
|
fprintf(stderr,"error: problem forking process\n");
|
||||||
return false;
|
return false;
|
||||||
@ -166,7 +175,12 @@ gboolean cb_close(GtkWidget *w, GdkEvent *e) {
|
|||||||
execlp("tomb","tomb","-S","umount",mapper,(char*)NULL);
|
execlp("tomb","tomb","-S","umount",mapper,(char*)NULL);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
waitpid(cpid, &res, 0);
|
||||||
|
if(res==0) {
|
||||||
gtk_main_quit();
|
gtk_main_quit();
|
||||||
|
notify_uninit();
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// callbacks right click
|
// callbacks right click
|
||||||
|
Loading…
Reference in New Issue
Block a user