md5sum fix lint restore cache use file use caching fix config config fix grep fix lint nightly catch webpack url curl check curl use plus install jq use npx do not use jq rename cache filter duplicates manual versions fix manual v3 8.18 fix urls 7.6 fix regex fix latest remixd renamepull/3668/head
parent
78e0bc7631
commit
049a10353f
@ -1,80 +1,81 @@ |
||||
const testFolder = './apps/remix-ide-e2e/src/tests/'; |
||||
const fs = require('fs'); |
||||
var child_process = require('child_process'); |
||||
const { exit } = require('process'); |
||||
|
||||
let url = 'https://binaries.soliditylang.org/wasm/list.json' |
||||
var child = child_process.spawnSync('grep', ['-ir', '[0-9]+commit', 'libs/**/*', 'apps/**/*', '--include', '*.ts'], { encoding: 'utf8', cwd: process.cwd(), shell: true }); |
||||
|
||||
const axios = require('axios') |
||||
if (child.error) { |
||||
console.log("ERROR: ", child); |
||||
exit(1); |
||||
} |
||||
|
||||
// use axios to download the file
|
||||
/* |
||||
axios({ |
||||
url: url, |
||||
method: 'GET', |
||||
}).then((response) => { |
||||
const nonNightlyRegex = /v\d*\.\d*\.\d*\+commit\.[\d\w]*/g; |
||||
|
||||
let info = response.data; |
||||
info.builds = info.builds.filter(build => build.path.indexOf('nightly') === -1) |
||||
for (let build of info.builds) { |
||||
let soljson = child.stdout.match(nonNightlyRegex); |
||||
console.log('non nightly soljson versions found: ', soljson); |
||||
|
||||
const buildurl = `https://solc-bin.ethereum.org/wasm/${build.path}`; |
||||
console.log(buildurl) |
||||
const quotedVersionsRegex = /'\d*\.\d*\.\d*\+commit\.[\d\w]*/g; |
||||
let soljson2 = child.stdout.match(quotedVersionsRegex).map((item) => item.replace('\'', 'v')); |
||||
console.log('quoted soljson versions found: ', soljson2); |
||||
|
||||
const path = `./dist/apps/remix-ide/assets/js/${build.path}`; |
||||
// use axios to get the file
|
||||
try { |
||||
axios({ |
||||
method: 'get', |
||||
url: buildurl, |
||||
}).then(function (response) { |
||||
fs.writeFile(path, response.data, function (err) { |
||||
if (err) { |
||||
console.log(err); |
||||
} |
||||
}) |
||||
}) |
||||
} catch (e) { |
||||
console.log('Failed to download ' + build.path + ' from ' + buildurl) |
||||
} |
||||
const nightlyVersionsRegex = /\d*\.\d*\.\d-nightly.*\+commit\.[\d\w]*/g |
||||
let soljson3 = child.stdout.match(nightlyVersionsRegex).map((item) => 'v' + item); |
||||
console.log('nightly soljson versions found: ', soljson3); |
||||
|
||||
// merge the three arrays
|
||||
soljson = soljson.concat(soljson2); |
||||
soljson = soljson.concat(soljson3); |
||||
|
||||
console.log('soljson versions found: ', soljson); |
||||
|
||||
|
||||
|
||||
if (soljson) { |
||||
// filter out duplicates
|
||||
soljson = soljson.filter((item, index) => soljson.indexOf(item) === index); |
||||
|
||||
} |
||||
} |
||||
) |
||||
*/ |
||||
|
||||
fs.readdirSync(testFolder).forEach(file => { |
||||
let c = fs.readFileSync(testFolder + file, 'utf8'); |
||||
const re = /(?<=soljson).*(?=(.js))/g; |
||||
const soljson = c.match(re); |
||||
if (soljson) { |
||||
console.log(soljson) |
||||
for (let i = 0; i < soljson.length; i++) { |
||||
|
||||
// manually add some versions
|
||||
|
||||
soljson.push('v0.7.6+commit.7338295f'); |
||||
soljson.push('v0.5.17+commit.d19bba13'); |
||||
|
||||
console.log('soljson versions found: ', soljson); |
||||
|
||||
for (let i = 0; i < soljson.length; i++) { |
||||
const version = soljson[i]; |
||||
if (version) { |
||||
const url = `https://solc-bin.ethereum.org/bin/soljson${version}.js`; |
||||
console.log(url) |
||||
let url = '' |
||||
|
||||
const path = `./dist/apps/remix-ide/assets/js/soljson${version}.js`; |
||||
// use axios to get the file
|
||||
try { |
||||
axios({ |
||||
method: 'get', |
||||
url: url, |
||||
}).then(function (response) { |
||||
fs.writeFile(path, response.data, function (err) { |
||||
if (err) { |
||||
console.log(err); |
||||
// if nightly
|
||||
if (version.includes('nightly')) { |
||||
url = `https://binaries.soliditylang.org/bin/soljson-${version}.js`; |
||||
}else{ |
||||
url = `https://binaries.soliditylang.org/wasm/soljson-${version}.js`; |
||||
} |
||||
|
||||
const dir = './dist/apps/remix-ide/assets/js/soljson'; |
||||
if (!fs.existsSync(dir)) { |
||||
fs.mkdirSync(dir); |
||||
} |
||||
}) |
||||
}) |
||||
|
||||
const path = `./dist/apps/remix-ide/assets/js/soljson/soljson-${version}.js`; |
||||
// check if the file exists
|
||||
const exists = fs.existsSync(path); |
||||
if (!exists) { |
||||
console.log('URL:', url) |
||||
try { |
||||
// use curl to download the file
|
||||
child_process.exec(`curl -o ${path} ${url}`, { encoding: 'utf8', cwd: process.cwd(), shell: true }) |
||||
} catch (e) { |
||||
console.log('Failed to download soljson' + version + ' from ' + url) |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
||||
}
|
||||
} |
||||
|
||||
}); |
||||
} |
||||
|
||||
|
@ -0,0 +1,32 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
set -e |
||||
# check if curl is installed |
||||
if ! command -v curl &> /dev/null |
||||
then |
||||
echo "curl could not be found" |
||||
exit |
||||
fi |
||||
|
||||
|
||||
# download https://binaries.soliditylang.org/wasm/list.json as json |
||||
curl https://binaries.soliditylang.org/wasm/list.json > list.json |
||||
# get the latest version without jq |
||||
latest=$(grep 'latestRelease' list.json | cut -d '"' -f 4) |
||||
echo "latest version: $latest" |
||||
# get url |
||||
url=$(grep "\"$latest\":" list.json | cut -d '"' -f 4) |
||||
echo "url: $url" |
||||
path="https://binaries.soliditylang.org/bin/$url" |
||||
echo "path: $path" |
||||
# download the file to ./apps/remix-ide/src/assets/js/soljson.js |
||||
curl $path > ./apps/remix-ide/src/assets/js/soljson.js |
||||
# if directory ./apps/remix-ide/src/assets/js/soljson does not exist, create it |
||||
if [ ! -d "./apps/remix-ide/src/assets/js/soljson" ]; then |
||||
mkdir ./apps/remix-ide/src/assets/js/soljson |
||||
fi |
||||
cp ./apps/remix-ide/src/assets/js/soljson.js ./apps/remix-ide/src/assets/js/soljson/$url |
||||
|
||||
# remove list.json |
||||
rm list.json |
||||
|
Loading…
Reference in new issue