Skip to content

Commit

Permalink
build: Add upgrade scripts for text assets
Browse files Browse the repository at this point in the history
  • Loading branch information
Conrad Chan committed Feb 10, 2021
1 parent b2e64d8 commit 315e74d
Show file tree
Hide file tree
Showing 5 changed files with 191 additions and 54 deletions.
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"
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

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

0 comments on commit 315e74d

Please sign in to comment.