copy.js 897 B

12345678910111213141516171819202122232425262728293031
  1. 'use strict';
  2. const path = require('path');
  3. const fs = require('fs');
  4. const dest = process.argv[2];
  5. const source = path.resolve(path.sep, process.argv[3] || path.join(__dirname, 'sqlite3'));
  6. const files = [
  7. { filename: 'sqlite3.c', optional: false },
  8. { filename: 'sqlite3.h', optional: false },
  9. ];
  10. if (process.argv[3]) {
  11. // Support "_HAVE_SQLITE_CONFIG_H" in custom builds.
  12. files.push({ filename: 'config.h', optional: true });
  13. } else {
  14. // Required for some tests.
  15. files.push({ filename: 'sqlite3ext.h', optional: false });
  16. }
  17. for (const { filename, optional } of files) {
  18. const sourceFilepath = path.join(source, filename);
  19. const destFilepath = path.join(dest, filename);
  20. if (optional && !fs.existsSync(sourceFilepath)) {
  21. continue;
  22. }
  23. fs.accessSync(sourceFilepath);
  24. fs.mkdirSync(path.dirname(destFilepath), { recursive: true });
  25. fs.copyFileSync(sourceFilepath, destFilepath);
  26. }