add q dependency
Use stat to check file existence.
Use stat.mtime to determine age of file and regenerate if older than maxAge.