<div dir="ltr"><br><div class="gmail_quote">2008/8/14 Joćo Valverde <span dir="ltr">&lt;<a href="mailto:backup95@netcabo.pt">backup95@netcabo.pt</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Andrea Francia wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">I created a similar program. A command line interface written in python for the trash can.<br>
The website is <a href="http://code.google.com/p/trash-cli/" target="_blank">http://code.google.com/p/trash-cli/</a><br>
<br>
May be we can collaborate.<br>
</div></blockquote>
<br>
Interesting, thanks. I&#39;ll be sure to take a look and contact you if I<br>
can be of use. Unfortunately my knowledge of Python is limited to<br>
skimming some books and code but I&#39;ve been meaning to dive in sometime.</blockquote><div>If you want, you can contribute knowing little of python. You can learn python working on&nbsp; trash-cli.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
 &nbsp; &nbsp;Is this feasible? Better than going through mtab right? How else<br>
 &nbsp; &nbsp;could I<br>
 &nbsp; &nbsp;find mount points for trash folders? How much can be done<br>
 &nbsp; &nbsp;automatically<br>
 &nbsp; &nbsp;when mounting or unmounting volumes? Are there any plans to<br>
 &nbsp; &nbsp;involve HAL<br>
 &nbsp; &nbsp;on this? My ignorance starts to show here...<br>
<br>
<br>
The component that knows the informations about the mount points is the kernel.<br>
There&#39;s no need to duplicate these informations in $XDG_DATA_HOME with the risk that those are inaccurate or non synchronized.<br>
<br>
The kernel communicates the status of the current mount points with /etc/mtab and (in some systems) with /proc/mounts.<br>
<br>
To parse the /etc/mtab (or the /proc/mounts) file you should use getmnt(2) system function that recognizes all the special cases &nbsp;(like spaces in mount points) that and a reinvented parser may not consider.<br>
<br>
</blockquote>&nbsp;<br>
<br></div>
Your points are all valid. The problem with mtab is that there is a lot<br>
of cruft in there. It&#39;s not straightforward to interpret its contents.<br>
Anyway doing this from the shell would require writing a parser using<br>
getmntent(2) as you mentioned. How do we distinguish which filesystems<br>
are &quot;interesting&quot; from the mntent structure without reading every single<br>
one and checking whether a .Trash* folder exists? Do we go by filesystem<br>
type? </blockquote><div>You can create a blacklist of fake file system. I a fake filesystem is not in the list just check it the .Trash folders exists.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
There are a lot of filesystems out there and it seems futile to<br>
keep track of every single one. One possibility is writing a parser in C<br>
that compares the filesystems in /proc/filesystems (I assume &quot;nodev&quot;<br>
means it&#39;s a virtual filesystem?) against /etc/mtab and returns the<br>
mount points that have the correct type.</blockquote><div><br>Are you sure that all filesystems with nodev are fake filesystems?<br>If you rely on /proc/filesystems your program will work only on those system that have the /proc filesystem available. <br>
<br>I think that the blacklist alternative is better.<br><br>At the present trash-cli doesn&#39;t have yet a black-list, simply checks if the .Trash directory exists. This works for me. <br>If you don&#39;t have a /net fileststem the blacklist will only speed up the list-trash operation of few milliseconds, I&#39;ll implement that only after other things.<br>
<br></div></div>-- <br>Andrea Francia<br><a href="http://andreafrancia.blogspot.com/">http://andreafrancia.blogspot.com/</a><br>
</div>