Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?
Daniel Iliev skrev: Actually, if there are no other concerns, you'd have to keep only one file for reference. Then you could compare the modification times of all other files with this reference file. Good idea! I implemented it and it reduced the number of cache files/directories in the tree from 633 to 26. The only drawback is that if the script is interrupted whilst checking a sequence of files with equal mtime, it will have to start over with that sequence the next time it is executed. (Files often get the same mtime if they are edited in an IDE and then all saved when executing the build command.) But reducing the number of cache files is worth that minor inconvenience. In case anyone is curious, the script is here: http://widelands.svn.sourceforge.net/viewvc/*checkout*/widelands/trunk/utils/spurious_source_code/detect -- gentoo-user@lists.gentoo.org mailing list
Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?
On Sat, 01 Mar 2008 17:49:34 +0100 Erik [EMAIL PROTECTED] wrote: Matthias Guede skrev: 2008/3/1, Erik [EMAIL PROTECTED]: Is it possible to set a property on a file and have it remove automatically when the file is modified? Suppose that we have a style checker that checks a lot of source code files. Once it examined a file and found it to be clean, it should set a property on the file (style-clean). Whenever the style checker is executed it skips files with this property. Whenever the file is modified, the filesystem removes the property. Is this possible? Which filesystems does it work on? One solution would be using 'make'. With rules like the following only modified files will be proceeded: timestamp: myFile doSomthingWidth myFile touch timestamp We have thought about that, but we would like to avoid having a parallel file hierarchy of timestamp files for our source tree. Therefore something like the archive attribute (suggested by Etanoi Shrdlu) would be better. Actually, if there are no other concerns, you'd have to keep only one file for reference. Then you could compare the modification times of all other files with this reference file. #!/bin/bash # initial/full scan touch timestamp.chk find hierarchy | while read some_file do [[ stylecheck($some_file) -eq 0 ]] || touch $some.file done #EOF After this every time you run stylecheck(), you'd have to check only the files having newer time stamp than the one of timestamp.chk. #!/bin/bash # incremental scan find hierarchy -newer timestamp.chk modified.list touch timestamp.chk while read some_file do [[ stylecheck($some_file) -eq 0 ]] || touch $some.file done modified.list unlink modified.list #EOF -- Best regards, Daniel -- gentoo-user@lists.gentoo.org mailing list
[gentoo-user] Set a property on a file and have it remove when the file is modified?
Is it possible to set a property on a file and have it remove automatically when the file is modified? Suppose that we have a style checker that checks a lot of source code files. Once it examined a file and found it to be clean, it should set a property on the file (style-clean). Whenever the style checker is executed it skips files with this property. Whenever the file is modified, the filesystem removes the property. Is this possible? Which filesystems does it work on? -- gentoo-user@lists.gentoo.org mailing list
Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?
On Sat, 2008-03-01 at 13:40 +0100, Erik wrote: Is it possible to set a property on a file and have it remove automatically when the file is modified? Suppose that we have a style checker that checks a lot of source code files. Once it examined a file and found it to be clean, it should set a property on the file (style-clean). Whenever the style checker is executed it skips files with this property. Whenever the file is modified, the filesystem removes the property. Is this possible? Which filesystems does it work on? Looks like you are looking for extended attributes: http://en.wikipedia.org/wiki/Extended_attributes But I don't think you can make them disappear by modifying a file. Inotify might be a solution for that problem: http://en.wikipedia.org/wiki/Inotify Alternatively you could check the file modification times as stored by default on every FS. You could use find for that or ls --full-time. signature.asc Description: This is a digitally signed message part
Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?
On Saturday 1 March 2008, Erik wrote: Is it possible to set a property on a file and have it remove automatically when the file is modified? Suppose that we have a style checker that checks a lot of source code files. Once it examined a file and found it to be clean, it should set a property on the file (style-clean). Whenever the style checker is executed it skips files with this property. Whenever the file is modified, the filesystem removes the property. Is this possible? Which filesystems does it work on? This is just an idea, and take it for what it is. I seem to remember that on fat filesystems, files used to have the archive attribute (along with the hidden, system, readonly attributes), which (back in the DOS/Win9x days) was meant to inform backup programs that the file was to be archived. The way it worked was more or less like this: when a file was created or modified, the OS set the archive flag for the file. The backup program, after backing up the file, cleared the flag. *If* linux implementations of the fat filesystem handle the archive flag (ie, set it when a file is modified), it should be possible to exploit this feature to your advantage. Just have the syntax checker clear the flag for a file upon succesful check, and have it run only on files with the flag set. When an application modifies the file, the flag will automatically be set again for that file (if it wasn't already, of course). If the above is true, mattrib (from the mtools package) can be used to manipulate fat attributes for a file. -- gentoo-user@lists.gentoo.org mailing list
Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?
2008/3/1, Erik [EMAIL PROTECTED]: Is it possible to set a property on a file and have it remove automatically when the file is modified? Suppose that we have a style checker that checks a lot of source code files. Once it examined a file and found it to be clean, it should set a property on the file (style-clean). Whenever the style checker is executed it skips files with this property. Whenever the file is modified, the filesystem removes the property. Is this possible? Which filesystems does it work on? One solution would be using 'make'. With rules like the following only modified files will be proceeded: timestamp: myFile doSomthingWidth myFile touch timestamp -- gentoo-user@lists.gentoo.org mailing list
Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?
Matthias Guede skrev: 2008/3/1, Erik [EMAIL PROTECTED]: Is it possible to set a property on a file and have it remove automatically when the file is modified? Suppose that we have a style checker that checks a lot of source code files. Once it examined a file and found it to be clean, it should set a property on the file (style-clean). Whenever the style checker is executed it skips files with this property. Whenever the file is modified, the filesystem removes the property. Is this possible? Which filesystems does it work on? One solution would be using 'make'. With rules like the following only modified files will be proceeded: timestamp: myFile doSomthingWidth myFile touch timestamp We have thought about that, but we would like to avoid having a parallel file hierarchy of timestamp files for our source tree. Therefore something like the archive attribute (suggested by Etanoi Shrdlu) would be better. -- gentoo-user@lists.gentoo.org mailing list