linux.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const fs = require('fs-extra');
  2. const path = require('path');
  3. const download = require('download');
  4. const decompress = require('decompress');
  5. const decompressTargz = require('decompress-targz');
  6. const distDir = path.resolve(__dirname, '../dist');
  7. const publicDir = `${distDir}/tmp/public`;
  8. const outDir = `${distDir}/linux`;
  9. const tempDownloadDir = `${distDir}/tmp/download`;
  10. async function main() {
  11. await fs.emptyDir(outDir);
  12. // перемещаем public на место
  13. if (await fs.pathExists(publicDir))
  14. await fs.move(publicDir, `${outDir}/public`);
  15. await fs.ensureDir(tempDownloadDir);
  16. // Скачиваем ipfs
  17. const ipfsRemoteUrl = 'https://dist.ipfs.io/go-ipfs/v0.4.18/go-ipfs_v0.4.18_linux-amd64.tar.gz';
  18. d = download(ipfsRemoteUrl);
  19. d.pipe(fs.createWriteStream(`${tempDownloadDir}/ipfs.tar.gz`));
  20. d.on('end', async() => {
  21. console.log(`done downloading ${ipfsRemoteUrl}`);
  22. //распаковываем
  23. await decompress(`${tempDownloadDir}/ipfs.tar.gz`, `${tempDownloadDir}`, {
  24. plugins: [
  25. decompressTargz()
  26. ]
  27. });
  28. console.log('files decompressed');
  29. // копируем в дистрибутив
  30. await fs.copy(`${tempDownloadDir}/go-ipfs/ipfs`, `${outDir}/ipfs`);
  31. console.log(`copied ${tempDownloadDir}/go-ipfs/ipfs to ${outDir}/ipfs`);
  32. //для development
  33. await fs.copy(`${tempDownloadDir}/go-ipfs/ipfs`, path.resolve(__dirname, '../server/ipfs'));
  34. });
  35. }
  36. main();