From a5b660694f712a76f768a5a5ec0d6027c79ea549 Mon Sep 17 00:00:00 2001 From: "Felix W. Dekker" Date: Thu, 15 Apr 2021 19:00:29 +0200 Subject: [PATCH] Add versioned deployment for template --- deploy-npm | 2 +- deploy-npm-versioned | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100755 deploy-npm-versioned diff --git a/deploy-npm b/deploy-npm index c484c0b..fa13b7c 100755 --- a/deploy-npm +++ b/deploy-npm @@ -6,7 +6,7 @@ repo_name="$(basename -s .git "$repo_dir")" dst_dir="$1" tmp_dir="$HOME/tmp/git/$repo_name-$(date +%s)" -echo "[[ Deploy ]] static($repo_name)" +echo "[[ Deploy ]] npm($repo_name)" echo "[[ Deploy ]] src: '$repo_dir'" echo "[[ Deploy ]] dst: '$dst_dir'" echo "[[ Deploy ]] tmp: '$tmp_dir'" diff --git a/deploy-npm-versioned b/deploy-npm-versioned new file mode 100755 index 0000000..168e631 --- /dev/null +++ b/deploy-npm-versioned @@ -0,0 +1,41 @@ +#!/usr/local/bin/bash +# $1 = destination + +repo_dir="$(pwd)" +repo_name="$(basename -s .git "$repo_dir")" +dst_dir="$1" +tmp_dir="$HOME/tmp/git/$repo_name-$(date +%s)" + +echo "[[ Deploy ]] npm-versioned($repo_name)" +echo "[[ Deploy ]] src: '$repo_dir'" +echo "[[ Deploy ]] dst: '$dst_dir'" +echo "[[ Deploy ]] tmp: '$tmp_dir'" + +if test -e "$tmp_dir"; then + echo "[[ Deploy ]] Directory '$tmp_dir' already exists, stopping deployment." + exit +fi + + +echo "[[ Deploy ]] Creating directories '$dst_dir' and '$tmp_dir'." +mkdir -p "$dst_dir" "$tmp_dir" + +echo "[[ Deploy ]] Cloning repository at '$repo_dir' into '$tmp_dir'." +git clone "$repo_dir" "$tmp_dir" + +echo "[[ Deploy ]] Deploying npm at '$tmp_dir' into '$tmp_dir/dist'." +cd "$tmp_dir" || exit +npm ci +npm run deploy + +echo "[[ Deploy ]] Extracting version info." +read -r major minor patch <<< "$(node -pe "require('./package.json').version" | awk '{split($0, a, "[\.\-\+]"); print a[1], a[2], a[3]}')" +dst_dirs="$dst_dir/$major.$minor.$patch $dst_dir/$major.$minor.x $dst_dir/$major.x.x" + +echo "[[ Deploy ]] Copying files from '$tmp_dir/dist' to the following directories: $dst_dirs" +echo "$dst_dirs" | xargs -n 1 rm -rf +echo "$dst_dirs" | xargs -n 1 cp -r dist/ +echo "$dst_dirs" | xargs -n 1 chmod -R g+w + +echo "[[ Deploy ]] Deleting '$tmp_dir'." +rm -rf "$tmp_dir"