Re: [gentoo-user] Set a property on a file and have it remove when the file is modified?

2008-03-03 Thread Erik

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?

2008-03-02 Thread Daniel Iliev
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?

2008-03-01 Thread Erik
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?

2008-03-01 Thread Florian Philipp

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?

2008-03-01 Thread Etaoin Shrdlu
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-03-01 Thread Matthias Guede
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?

2008-03-01 Thread Erik

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