Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: Add upgrade scripts for text assets #1326

Merged
merged 3 commits into from
Feb 11, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 20 additions & 53 deletions build/upgrade_highlightjs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,77 +4,44 @@
# TODO: This list of languages should be made more dynamic based on the file extensions Preview supports, see src/lib/extensions.js
HIGHLIGHTJS_DIST="highlight.pack.js"
HIGHLIGHTJS_LANGUAGES="actionscript dos c cpp cmake csharp css diff erb groovy haml java javascript json less makefile ocaml php perl properties python ruby scss scala sml sql bash vim yaml"
HIGHLIGHTJS_SRC_DIR="highlightjs"
TEXT_BASE_PATH="src/third-party/text"
TEXT_STATIC_ASSETS_BRANCH=${1:-master}
TEXT_STATIC_ASSETS_VERSION=$(./build/current_version.sh)
TEXT_STATIC_ASSETS_PATH="${TEXT_BASE_PATH}/${TEXT_STATIC_ASSETS_VERSION}"
REPO_SRC_DIR="highlightjs"
REPO_URL="git@github.com:highlightjs/highlight.js.git"
BASE_PATH="src/third-party/text"
STATIC_ASSETS_BRANCH=${1:-master}
STATIC_ASSETS_VERSION=$(./build/current_version.sh)
STATIC_ASSETS_PATH="${BASE_PATH}/${STATIC_ASSETS_VERSION}"

source build/upgrade_utils.sh

build_custom_highlightjs() {
echo "-----------------------------------------------------------------------------------"
echo "Cloning higlightjs repo at branch: $TEXT_STATIC_ASSETS_BRANCH..."
echo "Cloning higlightjs repo at branch: $STATIC_ASSETS_BRANCH..."
echo "-----------------------------------------------------------------------------------"
rm -rf ${HIGHLIGHTJS_SRC_DIR}
git clone git@github.com:highlightjs/highlight.js.git --depth 1 --single-branch --branch ${TEXT_STATIC_ASSETS_BRANCH} ${HIGHLIGHTJS_SRC_DIR} || return 1
rm -rf ${REPO_SRC_DIR}
git clone ${REPO_URL} --depth 1 --single-branch --branch ${STATIC_ASSETS_BRANCH} ${REPO_SRC_DIR} || return 1

echo "-----------------------------------------------------------------------------------"
echo "Building higlightjs for browser for languages ${HIGHLIGHTJS_LANGUAGES}..."
echo "-----------------------------------------------------------------------------------"
# Use subshell to execute the custom build to avoid having to keep track of the current working directory
(cd ${HIGHLIGHTJS_SRC_DIR} && yarn install --frozen-lockfile && node tools/build -t browser ${HIGHLIGHTJS_LANGUAGES}) || return 1
}

bump_highlightjs_version() {
echo "-----------------------------------------------------------------------------------"
echo "Bumping highlightjs version in manifest.json"
echo "-----------------------------------------------------------------------------------"
HIGHLIGHTJS_VERSION=$(cd ${HIGHLIGHTJS_SRC_DIR} && ../build/current_version.sh) || return 1

echo "Bumping highlightjs version to ${HIGHLIGHTJS_VERSION}"
node build/updateManifest.js ${TEXT_STATIC_ASSETS_VERSION} highlightjs ${HIGHLIGHTJS_VERSION} ${TEXT_STATIC_ASSETS_PATH}/manifest.json || return 1
}

cleanup_custom_highlightjs() {
echo "-----------------------------------------------------------------------------------"
echo "Cleaning up highlightjs repo"
echo "-----------------------------------------------------------------------------------"
rm -rf ${HIGHLIGHTJS_SRC_DIR}
}

prepare_target_directory() {
if [ ! -d $TEXT_STATIC_ASSETS_PATH ]
then
echo "-----------------------------------------------------------------------------------"
echo "Creating target directory at $TEXT_STATIC_ASSETS_PATH..."
echo "-----------------------------------------------------------------------------------"

TEXT_CURRENT_ASSETS_VERSIONS=`ls ${TEXT_BASE_PATH} | sort -t "." -k1,1n -k2,2n -k3,3n | tail -1`

echo "Using base version from $TEXT_CURRENT_ASSETS_VERSIONS"
mkdir -v ${TEXT_STATIC_ASSETS_PATH}
cp -pv ${TEXT_BASE_PATH}/${TEXT_CURRENT_ASSETS_VERSIONS}/* ${TEXT_STATIC_ASSETS_PATH}/
else
echo "-----------------------------------------------------------------------------------"
echo "Directory already exists at $TEXT_STATIC_ASSETS_PATH, using it as is..."
echo "-----------------------------------------------------------------------------------"
fi
(cd ${REPO_SRC_DIR} && yarn install --frozen-lockfile && node tools/build -t browser ${HIGHLIGHTJS_LANGUAGES}) || return 1
}

process_highlightjs_assets() {
echo "-----------------------------------------------------------------------------------"
echo "Copying relevant files to third-party directory..."
echo "-----------------------------------------------------------------------------------"
cp -v ${HIGHLIGHTJS_SRC_DIR}/build/${HIGHLIGHTJS_DIST} ${TEXT_STATIC_ASSETS_PATH}/highlight.min.js || return 1
cp -v ${HIGHLIGHTJS_SRC_DIR}/src/styles/github.css ${TEXT_STATIC_ASSETS_PATH} || return 1
cp -v ${REPO_SRC_DIR}/build/${HIGHLIGHTJS_DIST} ${STATIC_ASSETS_PATH}/highlight.min.js || return 1
cp -v ${REPO_SRC_DIR}/src/styles/github.css ${STATIC_ASSETS_PATH} || return 1

echo "-----------------------------------------------------------------------------------"
echo "Minifying github.css with cssnano"
echo "-----------------------------------------------------------------------------------"
./node_modules/.bin/cssnano ${TEXT_STATIC_ASSETS_PATH}/github.css ${TEXT_STATIC_ASSETS_PATH}/github.min.css || return 1
./node_modules/.bin/cssnano ${STATIC_ASSETS_PATH}/github.css ${STATIC_ASSETS_PATH}/github.min.css || return 1
}

upgrade_highlightjs() {
echo "Upgrading highlight.js to $TEXT_STATIC_ASSETS_BRANCH";
echo "Upgrading highlight.js to $STATIC_ASSETS_BRANCH";

# Prepare target directory under third-party/text
prepare_target_directory || return 1
Expand All @@ -85,11 +52,11 @@ upgrade_highlightjs() {
# Copy over built assets to target directory
process_highlightjs_assets || return 1

# Bump highlightjs version in package.json thirdparty-dependencies
bump_highlightjs_version || return 1
# Bump highlightjs version in manifest.json
bump_manifest_version || return 1

# Cleanup highlightjs
cleanup_custom_highlightjs || return 1
cleanup_repo || return 1

echo "-----------------------------------------------------------------------------------"
echo "Successfully upgraded highlightjs! 🚀"
Expand All @@ -103,7 +70,7 @@ if ! upgrade_highlightjs; then
echo "----------------------------------------------------------------------"

echo "----------------------------------------------------------------------"
echo "Clean workspace by deleting ${TEXT_STATIC_ASSETS_PATH} and ${HIGHLIGHTJS_SRC_DIR}"
echo "Clean workspace by deleting ${STATIC_ASSETS_PATH} and ${REPO_SRC_DIR}"
echo "----------------------------------------------------------------------"
exit 1
fi
63 changes: 63 additions & 0 deletions build/upgrade_papaparse.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/bash
# Run with specific branch/tag (e.g. ./upgrade_papaparse.sh 5.3.0) or with no arguments to use master

REMARKABLE_DIST="papaparse.min.js"
REPO_SRC_DIR="papaparse"
REPO_URL="git@github.com:mholt/PapaParse.git"
BASE_PATH="src/third-party/text"
STATIC_ASSETS_BRANCH=${1:-master}
STATIC_ASSETS_VERSION=$(./build/current_version.sh)
STATIC_ASSETS_PATH="${BASE_PATH}/${STATIC_ASSETS_VERSION}"

source build/upgrade_utils.sh

clone_repo() {
echo "-----------------------------------------------------------------------------------"
echo "Cloning papaparse repo at branch: $STATIC_ASSETS_BRANCH..."
echo "-----------------------------------------------------------------------------------"
rm -rf ${REPO_SRC_DIR}
git clone ${REPO_URL} --depth 1 --single-branch --branch ${STATIC_ASSETS_BRANCH} ${REPO_SRC_DIR} || return 1
}

process_papaparse_assets() {
echo "-----------------------------------------------------------------------------------"
echo "Copying relevant files to third-party directory..."
echo "-----------------------------------------------------------------------------------"
cp -v ${REPO_SRC_DIR}/papaparse.js ${STATIC_ASSETS_PATH} || return 1
cp -v ${REPO_SRC_DIR}/papaparse.min.js ${STATIC_ASSETS_PATH} || return 1
}

upgrade_papaparse() {
echo "Upgrading papaparse to $STATIC_ASSETS_BRANCH";

# Prepare target directory under third-party/text
prepare_target_directory || return 1

# Clone papaparse from the specified version
clone_repo || return 1

# Copy over built assets to target directory
process_papaparse_assets || return 1

# Bump papaparse version in manifest.json
bump_manifest_version || return 1

# Cleanup papaparse
cleanup_repo || return 1

echo "-----------------------------------------------------------------------------------"
echo "Successfully upgraded papaparse! 🚀"
echo "-----------------------------------------------------------------------------------"
}

# Execute this entire script
if ! upgrade_papaparse; then
echo "----------------------------------------------------------------------"
echo "Error while upgrading papaparse to latest version!"
echo "----------------------------------------------------------------------"

echo "----------------------------------------------------------------------"
echo "Clean workspace by deleting ${STATIC_ASSETS_PATH} and ${REPO_SRC_DIR}"
echo "----------------------------------------------------------------------"
exit 1
fi
68 changes: 68 additions & 0 deletions build/upgrade_remarkable.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/bin/bash
# Run with specific branch/tag (e.g. ./upgrade_remarkable.sh 2.0.1) or with no arguments to use master

REMARKABLE_DIST="remarkable.min.js"
ConradJChan marked this conversation as resolved.
Show resolved Hide resolved
REPO_SRC_DIR="remarkable"
REPO_URL="git@github.com:jonschlinkert/remarkable.git"
BASE_PATH="src/third-party/text"
STATIC_ASSETS_BRANCH=${1:-master}
STATIC_ASSETS_VERSION=$(./build/current_version.sh)
STATIC_ASSETS_PATH="${BASE_PATH}/${STATIC_ASSETS_VERSION}"

source build/upgrade_utils.sh

build_remarkable() {
echo "-----------------------------------------------------------------------------------"
echo "Cloning remarkable repo at branch: $STATIC_ASSETS_BRANCH..."
echo "-----------------------------------------------------------------------------------"
rm -rf ${REPO_SRC_DIR}
git clone ${REPO_URL} --depth 1 --single-branch --branch ${STATIC_ASSETS_BRANCH} ${REPO_SRC_DIR} || return 1

echo "-----------------------------------------------------------------------------------"
echo "Building remarkable..."
echo "-----------------------------------------------------------------------------------"
# Use subshell to execute the custom build to avoid having to keep track of the current working directory
(cd ${REPO_SRC_DIR} && yarn install --frozen-lockfile && yarn build) || return 1
}

process_remarkable_assets() {
echo "-----------------------------------------------------------------------------------"
echo "Copying relevant files to third-party directory..."
echo "-----------------------------------------------------------------------------------"
cp -v ${REPO_SRC_DIR}/dist/${REMARKABLE_DIST} ${STATIC_ASSETS_PATH} || return 1
}

upgrade_remarkable() {
echo "Upgrading remarkable to $STATIC_ASSETS_BRANCH";

# Prepare target directory under third-party/text
prepare_target_directory || return 1

# Build remarkable from the specified version
build_remarkable || return 1

# Copy over built assets to target directory
process_remarkable_assets || return 1

# Bump remarkable version in manifest.json
bump_manifest_version || return 1

# Cleanup remarkable
cleanup_repo || return 1

echo "-----------------------------------------------------------------------------------"
echo "Successfully upgraded remarkable! 🚀"
echo "-----------------------------------------------------------------------------------"
}

# Execute this entire script
if ! upgrade_remarkable; then
echo "----------------------------------------------------------------------"
echo "Error while upgrading remarkable to latest version!"
echo "----------------------------------------------------------------------"

echo "----------------------------------------------------------------------"
echo "Clean workspace by deleting ${STATIC_ASSETS_PATH} and ${REPO_SRC_DIR}"
echo "----------------------------------------------------------------------"
exit 1
fi
37 changes: 37 additions & 0 deletions build/upgrade_utils.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/bash

bump_manifest_version() {
echo "-----------------------------------------------------------------------------------"
echo "Bumping $REPO_SRC_DIR version in manifest.json"
echo "-----------------------------------------------------------------------------------"
VERSION=$(cd $REPO_SRC_DIR && ../build/current_version.sh) || return 1
ConradJChan marked this conversation as resolved.
Show resolved Hide resolved

echo "Bumping $REPO_SRC_DIR version to ${VERSION}"
node build/updateManifest.js ${STATIC_ASSETS_VERSION} ${REPO_SRC_DIR} ${VERSION} ${STATIC_ASSETS_PATH}/manifest.json || return 1
}

cleanup_repo() {
echo "-----------------------------------------------------------------------------------"
echo "Cleaning up $REPO_SRC_DIR repo"
echo "-----------------------------------------------------------------------------------"
rm -rf ${REPO_SRC_DIR}
}

prepare_target_directory() {
if [ ! -d $STATIC_ASSETS_PATH ]
then
echo "-----------------------------------------------------------------------------------"
echo "Creating target directory at $STATIC_ASSETS_PATH..."
echo "-----------------------------------------------------------------------------------"

CURRENT_ASSETS_VERSIONS=`ls ${BASE_PATH} | sort -t "." -k1,1n -k2,2n -k3,3n | tail -1`

echo "Using base version from $CURRENT_ASSETS_VERSIONS"
mkdir -v ${STATIC_ASSETS_PATH}
cp -pv ${BASE_PATH}/${CURRENT_ASSETS_VERSIONS}/* ${STATIC_ASSETS_PATH}/
else
echo "-----------------------------------------------------------------------------------"
echo "Directory already exists at $STATIC_ASSETS_PATH, using it as is..."
echo "-----------------------------------------------------------------------------------"
fi
}
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@
"test:watch": "yarn test --watch",
"upgrade:annotations": "./build/upgrade_annotations.sh",
"upgrade:highlightjs": "./build/upgrade_highlightjs.sh",
"upgrade:pdfjs": "./build/upgrade_pdfjs.sh"
"upgrade:papaparse": "./build/upgrade_papaparse.sh",
"upgrade:pdfjs": "./build/upgrade_pdfjs.sh",
"upgrade:remarkable": "./build/upgrade_remarkable.sh"
},
"browserslist": [
"last 2 Chrome versions",
Expand Down