diff --git a/contrib/get_browsh_version.sh b/contrib/get_browsh_version.sh new file mode 100755 index 0000000..47d2c20 --- /dev/null +++ b/contrib/get_browsh_version.sh @@ -0,0 +1,7 @@ +set -e + +PROJECT_ROOT=$(git rev-parse --show-toplevel) +version_file=$PROJECT_ROOT/interfacer/src/browsh/version.go +line=$(cat $version_file | grep 'browshVersion') +version=$(echo $line | grep -o '".*"' | sed 's/"//g') +echo -n $version diff --git a/contrib/release_if_new_version.sh b/contrib/release_if_new_version.sh index 8774c3c..ac0d71b 100755 --- a/contrib/release_if_new_version.sh +++ b/contrib/release_if_new_version.sh @@ -3,28 +3,26 @@ set -e PROJECT_ROOT=$(git rev-parse --show-toplevel) -manifest=$PROJECT_ROOT/webext/manifest.json -line=$(cat $manifest | grep '"version"') -manifest_version=$(echo $line | grep -o '".*"' | cut -d " " -f 2 | sed 's/"//g') +browsh_version=$($PROJECT_ROOT/contrib/get_browsh_version.sh) latest_tagged_version=$(git tag --sort=v:refname --list 'v*.*.*' | tail -n1 | sed -e "s/^v//") -echo "manifest.json version: $manifest_version" +echo "Browsh version: $browsh_version" echo "Latest tag: $latest_tagged_version" -if [[ "$manifest_version" == "$latest_tagged_version" ]]; then +if [[ "$browsh_version" == "$latest_tagged_version" ]]; then echo "Not running release as there's no new version." exit 0 fi -git tag v$manifest_version -git show v$manifest_version --quiet +git tag v$browsh_version +git show v$browsh_version --quiet git config --global user.email "builds@travis-ci.com" git config --global user.name "Travis CI" # `/dev/null` needed to prevent Github token appearing in logs git push --tags --quiet https://$GITHUB_TOKEN@github.com/browsh-org/browsh > /dev/null 2>&1 -git reset --hard v$manifest_version +git reset --hard v$browsh_version cd $PROJECT_ROOT/webext BROWSH_ENV=RELEASE npm run build @@ -35,8 +33,8 @@ curl -sL http://git.io/goreleaser | bash cd $HOME git clone https://github.com/browsh-org/www.brow.sh.git cd www.brow.sh -echo "latest_version: $manifest_version" > _data/browsh.yml +echo "latest_version: $browsh_version" > _data/browsh.yml git add _data/browsh.yml -git commit -m "(Travis CI) Updated Browsh version to $manifest_version" +git commit -m "(Travis CI) Updated Browsh version to $browsh_version" # `/dev/null` needed to prevent Github token appearing in logs git push --quiet https://$GITHUB_TOKEN@github.com/browsh-org/www.brow.sh > /dev/null 2>&1 diff --git a/interfacer/contrib/setup_browsh.sh b/interfacer/contrib/setup_browsh.sh index 2f0ddd2..52b93e0 100755 --- a/interfacer/contrib/setup_browsh.sh +++ b/interfacer/contrib/setup_browsh.sh @@ -10,15 +10,8 @@ set -e -if [ ! -f manifest.json ]; then - PROJECT_ROOT=$(git rev-parse --show-toplevel)/webext -else - PROJECT_ROOT=. -fi -manifest=$PROJECT_ROOT/manifest.json - -line=$(cat $manifest | grep '"version"') -version=$(echo $line | grep -o '".*"' | cut -d " " -f 2 | sed 's/"//g') +PROJECT_ROOT=$(git rev-parse --show-toplevel) +version=$($PROJECT_ROOT/contrib/get_browsh_version.sh) base='https://github.com/browsh-org/browsh/releases/download' release_url="$base/v$version/browsh_${version}_linux_amd64" diff --git a/interfacer/src/browsh/version.go b/interfacer/src/browsh/version.go new file mode 100644 index 0000000..cb90a18 --- /dev/null +++ b/interfacer/src/browsh/version.go @@ -0,0 +1,3 @@ +package browsh + +var browshVersion = "1.4.1" diff --git a/webext/contrib/bundle_webextension.sh b/webext/contrib/bundle_webextension.sh index 4dbf103..1a700bb 100755 --- a/webext/contrib/bundle_webextension.sh +++ b/webext/contrib/bundle_webextension.sh @@ -16,10 +16,7 @@ cd $PROJECT_ROOT/webext && $NODE_BIN/webpack cd $PROJECT_ROOT/webext/dist && rm *.map $NODE_BIN/web-ext build --overwrite-dest -# Get the current version of Browsh -version=$(cat $PROJECT_ROOT/webext/manifest.json | python2 -c \ - 'import sys, json; print json.load(sys.stdin)["version"]' -) +version=$($PROJECT_ROOT/contrib/get_browsh_version.sh) xpi_file=browsh-$version-an+fx.xpi zip_file=browsh-$version.zip diff --git a/webext/manifest.json b/webext/manifest.json index 5a52754..bd6dc0f 100644 --- a/webext/manifest.json +++ b/webext/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Browsh", - "version": "1.4.0", + "version": "BROWSH_VERSION", "description": "Renders the browser as realtime, interactive, TTY-compatible text", diff --git a/webext/webpack.config.js b/webext/webpack.config.js index f1d0fa4..61ee93b 100644 --- a/webext/webpack.config.js +++ b/webext/webpack.config.js @@ -1,6 +1,7 @@ const webpack = require('webpack'); const path = require('path'); const CopyWebpackPlugin = require('copy-webpack-plugin'); +const fs = require('fs'); module.exports = { mode: process.env['BROWSH_ENV'] === 'RELEASE' ? 'production' : 'development', @@ -29,8 +30,17 @@ module.exports = { }), new CopyWebpackPlugin([ { from: 'assets', to: 'dist/assets' }, - { from: 'manifest.json', to: 'dist/' }, { from: '.web-extension-id', to: 'dist/' }, + { from: 'manifest.json', to: 'dist/', + // Inject the current Browsh version into the manifest JSON + transform(manifest, _) { + const version_path = '../interfacer/src/browsh/version.go'; + let buffer = fs.readFileSync(version_path); + let version_contents = buffer.toString(); + const matches = version_contents.match(/"(.*?)"/); + return manifest.toString().replace('BROWSH_VERSION', matches[1]); + } + }, ]) ] };