diff --git a/Slax/debian/rootcopy/sbin/gtk-bookmarks-update b/Slax/debian/rootcopy/sbin/gtk-bookmarks-update index 24f605c..cf32eb0 100755 --- a/Slax/debian/rootcopy/sbin/gtk-bookmarks-update +++ b/Slax/debian/rootcopy/sbin/gtk-bookmarks-update @@ -1,10 +1,22 @@ #!/bin/bash -cat ~/.gtk-bookmarks | fgrep -v ///media/ | fgrep -v "file:/// /" | egrep -v '^$' > ~/.gtk-bookmarks.tmp 2>/dev/null -ls -1 /media | while read LINE; do +LOCK=/run/lock/gtk-bookmark-update-lock + +# make sure to avoid parallel execution by using mkdir as lock +while true; do + mkdir $LOCK 2>/dev/null + if [ $? = 0 ]; then + break + fi +done + +echo "file:/// /" > ~/.gtk-bookmarks.tmp # add root at the beginning + +cat ~/.gtk-bookmarks | fgrep -v ///media/ | fgrep -v "file:/// /" | egrep -v '^$' >> ~/.gtk-bookmarks.tmp 2>/dev/null +ls -1 /media | sort | while read LINE; do echo "file:///media/$LINE $LINE" >> ~/.gtk-bookmarks.tmp done -echo "file:/// /" >> ~/.gtk-bookmarks.tmp # add root at the end - mv -f ~/.gtk-bookmarks.tmp ~/.gtk-bookmarks + +rmdir $LOCK diff --git a/Slax/debian/rootcopy/sbin/slax-automount b/Slax/debian/rootcopy/sbin/slax-automount index 6e6777b..2e447f4 100755 --- a/Slax/debian/rootcopy/sbin/slax-automount +++ b/Slax/debian/rootcopy/sbin/slax-automount @@ -13,7 +13,6 @@ # $SUBSYSTEM (eg: block) PATH=$PATH:/usr/bin:/usr/sbin:/bin:/sbin -BOOKMARKS="/root/.gtk-bookmarks" BAS="$(basename "$DEVNAME")" UNIT="media-$BAS.mount" @@ -54,7 +53,7 @@ if [ "$ACTION" = "add" -o "$ACTION" = "change" ]; then systemctl enable $UNIT systemctl start $UNIT - echo "file://$MNT" "$BAS" >>$BOOKMARKS + gtk-bookmarks-update DISPLAY=:0.0 pcmanfm file://$MNT >/dev/null 2>&1 fi fi @@ -62,7 +61,7 @@ fi if [ "$ACTION" = "remove" ]; then systemctl disable $UNIT - rm $TARGET - sed -i -r "\\;^file://$MNT;d" $BOOKMARKS + rm "$TARGET" + rmdir "$MNT" + gtk-bookmarks-update fi -