Bluesky app fork with some witchin' additions 💫 forked from jollywhoppers.com/witchsky.app
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105const crypto = require('crypto')const fs = require('fs')const fsp = fs.promisesconst path = require('path')
const DIST_DIR = './dist'const BUNDLES_DIR = '/_expo/static/js'const IOS_BUNDLE_DIR = path.join(DIST_DIR, BUNDLES_DIR, '/ios')const ANDROID_BUNDLE_DIR = path.join(DIST_DIR, BUNDLES_DIR, '/android')const METADATA_PATH = path.join(DIST_DIR, '/metadata.json')const DEST_DIR = './bundleTempDir'
// Weird, don't feel like figuring out _why_ it wants thisconst METADATA = require(`../${METADATA_PATH}`)const IOS_METADATA_ASSETS = METADATA.fileMetadata.ios.assetsconst ANDROID_METADATA_ASSETS = METADATA.fileMetadata.android.assets
const getMd5 = async path => { return new Promise(res => { const hash = crypto.createHash('md5') const rStream = fs.createReadStream(path) rStream.on('data', data => { hash.update(data) }) rStream.on('end', () => { res(hash.digest('hex')) }) })}
const moveFiles = async () => { console.log('Making directory...') await fsp.mkdir(DEST_DIR) await fsp.mkdir(path.join(DEST_DIR, '/assets'))
console.log('Getting ios md5...') const iosCurrPath = path.join( IOS_BUNDLE_DIR, (await fsp.readdir(IOS_BUNDLE_DIR))[0], ) const iosMd5 = await getMd5(iosCurrPath) const iosNewPath = `bundles/${iosMd5}.bundle`
console.log('Copying ios bundle...') await fsp.cp(iosCurrPath, path.join(DEST_DIR, iosNewPath))
console.log('Getting android md5...') const androidCurrPath = path.join( ANDROID_BUNDLE_DIR, (await fsp.readdir(ANDROID_BUNDLE_DIR))[0], ) const androidMd5 = await getMd5(androidCurrPath) const androidNewPath = `bundles/${androidMd5}.bundle`
console.log('Copying android bundle...') await fsp.cp(androidCurrPath, path.join(DEST_DIR, androidNewPath))
const iosAssets = [] const androidAssets = []
console.log('Getting ios asset md5s and moving them...') for (const asset of IOS_METADATA_ASSETS) { const currPath = path.join(DIST_DIR, asset.path) const md5 = await getMd5(currPath) const withExtPath = `assets/${md5}.${asset.ext}` iosAssets.push(withExtPath) await fsp.cp(currPath, path.join(DEST_DIR, withExtPath)) }
console.log('Getting android asset md5s and moving them...') for (const asset of ANDROID_METADATA_ASSETS) { const currPath = path.join(DIST_DIR, asset.path) const md5 = await getMd5(currPath) const withExtPath = `assets/${md5}.${asset.ext}` androidAssets.push(withExtPath) await fsp.cp(currPath, path.join(DEST_DIR, withExtPath)) }
const result = { version: 0, bundler: 'metro', fileMetadata: { ios: { bundle: iosNewPath, assets: iosAssets, }, android: { bundle: androidNewPath, assets: androidAssets, }, }, }
console.log('Writing metadata...') await fsp.writeFile( path.join(DEST_DIR, 'metadata.json'), JSON.stringify(result), )
console.log('Finished!') console.log('Metadata:', result)}
moveFiles()