|
@@ -14,46 +14,45 @@ const fileExists = (path) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
(async () => {
|
|
(async () => {
|
|
|
- const filesList = (
|
|
|
|
|
- await fs.promises.readFile(resolve(__dirname, '../.gitignore'), { encoding: 'utf-8' })
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ const filesList = (await fs.promises.readFile(resolve(__dirname, '../.gitignore'), { encoding: 'utf-8' }))
|
|
|
.split('\n')
|
|
.split('\n')
|
|
|
- .filter(p => p.startsWith('List/'));
|
|
|
|
|
|
|
+ .filter(p => p.startsWith('List/') && !p.endsWith('/'));
|
|
|
|
|
|
|
|
if (
|
|
if (
|
|
|
- (await Promise.all(
|
|
|
|
|
|
|
+ !((await Promise.all(
|
|
|
filesList.map(p => fileExists(join(__dirname, '..', p)))
|
|
filesList.map(p => fileExists(join(__dirname, '..', p)))
|
|
|
- )).some(exist => !exist)
|
|
|
|
|
|
|
+ )).some(exist => !exist))
|
|
|
) {
|
|
) {
|
|
|
- const tempFile = join(tmpdir(), `sukka-surge-last-build-tar-${Date.now()}`);
|
|
|
|
|
- const resp = await fetch('https://codeload.github.com/sukkaw/surge/tar.gz/gh-pages');
|
|
|
|
|
- const readableNodeStream = Readable.fromWeb(resp.body);
|
|
|
|
|
- await pipeline(
|
|
|
|
|
- readableNodeStream,
|
|
|
|
|
- fs.createWriteStream(tempFile)
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ console.log('All files exists, skip download.');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- const extractedPath = join(tmpdir(), `sukka-surge-last-build-extracted-${Date.now()}`);
|
|
|
|
|
- await fse.ensureDir(extractedPath);
|
|
|
|
|
- await tar.x({
|
|
|
|
|
- file: tempFile,
|
|
|
|
|
- cwd: extractedPath,
|
|
|
|
|
- filter: (p) => {
|
|
|
|
|
- return p.split('/')[1] === 'List'
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ const tempFile = join(tmpdir(), `sukka-surge-last-build-tar-${Date.now()}`);
|
|
|
|
|
+ const resp = await fetch('https://codeload.github.com/sukkaw/surge/tar.gz/gh-pages');
|
|
|
|
|
+ const readableNodeStream = Readable.fromWeb(resp.body);
|
|
|
|
|
+ await pipeline(
|
|
|
|
|
+ readableNodeStream,
|
|
|
|
|
+ fs.createWriteStream(tempFile)
|
|
|
|
|
+ );
|
|
|
|
|
|
|
|
- await Promise.all(filesList.map(p => fse.copy(
|
|
|
|
|
- join(extractedPath, 'Surge-gh-pages', p),
|
|
|
|
|
- join(__dirname, '..', p),
|
|
|
|
|
- {
|
|
|
|
|
- overwrite: true
|
|
|
|
|
- }
|
|
|
|
|
- )))
|
|
|
|
|
|
|
+ const extractedPath = join(tmpdir(), `sukka-surge-last-build-extracted-${Date.now()}`);
|
|
|
|
|
+ await fse.ensureDir(extractedPath);
|
|
|
|
|
+ await tar.x({
|
|
|
|
|
+ file: tempFile,
|
|
|
|
|
+ cwd: extractedPath,
|
|
|
|
|
+ filter: (p) => {
|
|
|
|
|
+ return p.split('/')[1] === 'List'
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
- await fs.promises.unlink(tempFile).catch(() => { });
|
|
|
|
|
- await fs.promises.unlink(extractedPath).catch(() => { });
|
|
|
|
|
- } else {
|
|
|
|
|
- console.log('All files exists, skip download.');
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ await Promise.all(filesList.map(p => fse.copy(
|
|
|
|
|
+ join(extractedPath, 'Surge-gh-pages', p),
|
|
|
|
|
+ join(__dirname, '..', p),
|
|
|
|
|
+ {
|
|
|
|
|
+ overwrite: true
|
|
|
|
|
+ }
|
|
|
|
|
+ )))
|
|
|
|
|
+
|
|
|
|
|
+ await fs.promises.unlink(tempFile).catch(() => { });
|
|
|
|
|
+ await fs.promises.unlink(extractedPath).catch(() => { });
|
|
|
})();
|
|
})();
|