InternalEprojectAttributes

dgutov edited this page Sep 13, 2010 · 18 revisions

Project attributes that eproject uses internally:

  • :relevant-files (list of regexps used to filter the file list when running eproject-list-project-files; files must match one of these regexps to be included)
  • :irrelevant-files (list of regexeps used to filter the file list when running eproject-list-project-files; files must not match any of these regexps in order to be included)
  • :file-name-map (function that maps file names relative to the project root to “sugary” names; i.e. lib/Foo/Bar.pm to Foo::Bar)
  • :project-name (function that is used to determine the project name; passed the root dir as an arg)
  • :config-file (file name [in project root] of optional file containing extra project attributes; defaults to .eproject, override with care)

Note that attributes that are literally functions must be wrapped in two layers of lambdas. Single lambda are interpreted as compute-on-demand attributes, rather than literal lambdas to be stored as attributes. The joys of ambiguity!