Skip to content

Commit ecb1823

Browse files
committed
some moar scritps
1 parent 94a9009 commit ecb1823

File tree

11 files changed

+206
-7
lines changed

11 files changed

+206
-7
lines changed

BlocksCompiler/config.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"real_blocks_path": "C:\\Users\\User\\Documents\\_LocalPenguinMod\\PenguinMod-Blocks",
3-
"vm_blocks_path": "C:\\Users\\User\\Documents\\_LocalPenguinMod\\PenguinMod-Vm\\node_modules\\scratch-blocks",
4-
"gui_blocks_path": "C:\\Users\\User\\Documents\\_LocalPenguinMod\\penguinmod.github.io\\node_modules\\scratch-blocks",
5-
"gui_blocks_media_path": "C:\\Users\\User\\Documents\\_LocalPenguinMod\\penguinmod.github.io\\node_modules\\scratch-blocks\\media",
6-
"vm_blocks_media_path": "C:\\Users\\User\\Documents\\_LocalPenguinMod\\PenguinMod-Vm\\node_modules\\scratch-blocks\\media",
2+
"real_blocks_path": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch-blocks",
3+
"vm_blocks_path": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch-vm/node_modules/scratch-blocks",
4+
"gui_blocks_path": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch-gui/node_modules/scratch-blocks",
5+
"gui_blocks_media_path": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch-gui/node_modules/scratch-blocks/media",
6+
"vm_blocks_media_path": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch-vm/node_modules/scratch-blocks/media",
77
"shouldRecompile": true
88
}

BlocksCompiler/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BlocksDownloader/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CloneDevelop/index.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const fs = require('fs')
2+
const devCompany = 'PenguinMod-Dev'
3+
const repos = [
4+
'audio',
5+
'blocks',
6+
['penguinmod-dev.github.io', 'scratch-gui'],
7+
'packager',
8+
'paint',
9+
'parser',
10+
'render',
11+
['penguinmod-render-fonts', 'scratch-render-fonts'],
12+
'storage',
13+
'vm'
14+
]
15+
const fileExists = path =>
16+
new Promise(resolve => {
17+
fs.access(path, fs.constants.R_OK | fs.constants.W_OK | fs.constants.F_OK, err => {
18+
resolve(!err)
19+
});
20+
})
21+
22+
const ittr = async idx => {
23+
const repo = repos[idx]
24+
const source = Array.isArray(repo)
25+
? `${devCompany}/${repo[0]}`
26+
: `${devCompany}/PenguinMod-${repo.toUpperCase()}`
27+
const dest = Array.isArray(repo)
28+
? `../../${repo[1]}`
29+
: `../../scratch-${repo}`
30+
31+
idx++
32+
const exists = await fileExists(dest)
33+
if (exists) {
34+
console.log('skiping', repo[0] ?? repo)
35+
return ittr(idx)
36+
}
37+
exec(`gh repo clone "${source}" "${dest}"`, (error, stdout, stderr) => {
38+
if (error) {
39+
console.log(`error: ${error.message}`)
40+
return
41+
}
42+
if (stderr) {
43+
console.log(`stderr: ${stderr}`)
44+
return
45+
}
46+
console.log(stdout)
47+
ittr(idx)
48+
})
49+
}
50+
ittr(0)

CloneDevelop/package-lock.json

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CloneDevelop/package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "clonedevelop",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"author": "",
10+
"license": "ISC"
11+
}

LinkRepos/config.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"gui": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-gui",
3+
"packager": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-packager",
4+
"audio": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-audio",
5+
"blocks": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-blocks",
6+
"paint": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-paint",
7+
"parser": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-parser",
8+
"render": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-render",
9+
"render-fonts": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-render-fonts",
10+
"storage": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-storage",
11+
"vm": "/home/godlsayerakp/Documents/repos/PenguinMod/scratch/scratch-vm",
12+
"entryPoints": [
13+
"gui",
14+
"packager"
15+
]
16+
}

LinkRepos/index.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
const fs = require('fs')
2+
const {exec} = require("child_process");
3+
const path = require('path')
4+
const conf = require('./config.json')
5+
const pmLink = /^(github:PenguinMod|git\+https:\/\/github\.com\/PenguinMod)(-Dev)?\/PenguinMod-([\w-]+)(.git)?#[\w-]+$/i
6+
const fileExists = path =>
7+
new Promise(resolve => {
8+
fs.access(path, fs.constants.R_OK | fs.constants.W_OK | fs.constants.F_OK, err => {
9+
resolve(!err)
10+
});
11+
})
12+
const handled = {}
13+
14+
const ittr = async entry => {
15+
if (await fileExists(path.join(conf[entry], 'node_modules'))) {
16+
console.log(`removing old node_modules from ${entry}... please wait`)
17+
fs.rmSync(path.join(conf[entry], 'node_modules'), {
18+
recursive: true
19+
})
20+
}
21+
console.log(`intalling dependencies for ${entry}... please wait`)
22+
exec('npm i --force', {cwd: conf[entry]}, (error, stdout, stderr) => {
23+
if (error) {
24+
console.log(`error: ${error.message}`)
25+
return
26+
}
27+
// ignore wranings
28+
if (stderr && !stderr.startsWith('npm WARN')) {
29+
console.log(`stderr: ${stderr}`)
30+
return
31+
}
32+
console.log('dependencies installed.')
33+
const packagePath = path.join(conf[entry], 'package.json')
34+
const packJson = require(packagePath)
35+
const dependencies = Object.values(Object.assign({}, packJson.dependencies, packJson.devDependencies))
36+
.filter(package => package.startsWith('github:PenguinMod') || package.startsWith('git+https://github.com/PenguinMod'))
37+
.map(package => {
38+
const match = package.match(pmLink)
39+
const name = match[3].toLowerCase()
40+
return [name, conf[name]]
41+
})
42+
43+
for (const dep of dependencies) {
44+
const [name, src] = dep
45+
console.log('linking', name)
46+
const dest = path.join(conf[entry], 'node_modules', `scratch-${name}`)
47+
fs.rmSync(dest, {
48+
recursive: true
49+
})
50+
fs.symlinkSync(src, dest)
51+
if (!handled[name]) ittr(name)
52+
}
53+
handled[entry] = true
54+
})
55+
}
56+
57+
console.log('starting installers...')
58+
for (const name of conf.entryPoints) {
59+
ittr(name)
60+
}
61+
console.log('finnished starting installers...')

LinkRepos/package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "clonedevelop",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"author": "",
10+
"license": "ISC"
11+
}

package-lock.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)