UNPKG

hygen

Version:

The scalable code generator that saves you time.

73 lines (62 loc) 2.05 kB
#!/usr/bin/env node const fs = require('fs-extra') const execa = require('execa') const path = require('path') const package = require(path.join(__dirname, '../package.json')) const wd = path.join(__dirname, '../standalone') const v = package.version const name = package.name const plats = ['macos', 'win.exe', 'linux'] const repo = 'github.com/jondot/homebrew-tap' const main = async () => { for (const plat of plats) { console.log(`standalone: packing ${plat}`) const file = `${name}-${plat}` await fs.remove(`${wd}/tar-${file}`) await fs.mkdir(`${wd}/tar-${file}`) await fs.move(`${wd}/${file}`, `${wd}/tar-${file}/hygen`) await execa.shell( `cd ${wd}/tar-${file} && tar -czvf ../hygen.${plat}.v${v}.tar.gz hygen` ) await fs.remove(`${wd}/tar-${file}`) } console.log('standalone: done.') console.log((await execa.shell(`ls ${wd}`)).stdout) console.log('standalone: publishing to homebrew tap...') const matches = (await execa.shell( `shasum -a 256 ${wd}/hygen.macos.v${v}.tar.gz` )).stdout.match(/([a-f0-9]+)\s+/) console.log(matches) if (matches && matches.length > 1) { const sha = matches[1] await fs.writeFile('/tmp/hygen.rb', brewFormula(sha, v)) const cmd = [ `cd /tmp`, `git clone git://${repo} brew-tap`, `cd brew-tap`, `mv /tmp/hygen.rb .`, `git config user.email jondotan@gmail.com`, `git config user.name 'Dotan Nahum'`, `git add .`, `git commit -m 'hygen: auto-release'`, `git push https://${process.env.GITHUB_TOKEN}@${repo}` ].join(' && ') console.log(await execa.shell(cmd).stdout) console.log('standalone: publish done.') } } const brewFormula = (sha, ver) => ` VER = "${ver}" SHA = "${sha}" class Hygen < Formula desc "The scalable code generator that saves you time." homepage "http://www.hygen.io" url "https://github.com/jondot/hygen/releases/download/v#{VER}/hygen.macos.v#{VER}.tar.gz" version VER sha256 SHA def install bin.install "hygen" end end ` main()