linux.js 1.5 KB

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