> I have essentially already implemented the find algorithm under the
> assumption that files that would be copied to for example /usr/bin
> will be but in /my/tmp/dir/usr/bin during the build.
I don't think I understand your assumption. What do you mean "during
the build"? I think the only way to make sure that your paths are
correct is to do a "fake" install into a temp directory and then do a
recursive copy.
For instance, I think we have dist/build/foo/foo.exe (or something)
would get installed in /usr/bin/foo.exe, and dist/doc/foo.html would
be installed in /usr/share/doc/foo/foo.html. So the install paths
aren't correct at build time, only at install time.
Sorry for being a bit unclear. My algorithm takes a directory prefix
such as /tmp and recursively creates a list of absolute paths with the
prefix removed. Example:
Actuall files and dirs:
/tmp/usr/bin/foo.exe
/tmp/usr/share/doc/doc.txt
The log file I create would look like this when run with /tmp as prefix:
/usr/bin/foo.exe _SHA-1_or_something_
/usr/share/doc/doc.txt _SHA-1_or_something_
I have a function:
-- | @writeInstallLog file dir@ creates a file @file@ that contains a list of
-- all directories and files in @dir@ with the prefix @dir@ removed and /
-- prepended.
writeInstallLog :: FilePath -> FilePath -> IO ()
> The files are removed in a way that will also remove empty
> directories. I was thinking of putting a timestamp on the files as
> well.
And maybe a sha1 sum?
Perhaps it would be a good idea to come up with things that could go
wrong during an uninstall. Here are some:
* File missing (deleted by user).
* File modified.
* File shared with some other Cabal package.
* Configuration file (may not be removed).
- Johan
_______________________________________________
cabal-devel mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cabal-devel