심심한 개발자의 취미생활

2. 블로그 만들기 외전 - 외부 빌드 스크립트 만들기

포스팅 글과 블로그 제작 프로젝트를 분리 했다. 처음부터 분리가 가능하도록 기획을 했었기에 어렵지 않게 작업이 진행되었다. 분리한 이유는 크게 2가지 이다. 첫번째는 프로젝트의 규모가 커지고 포스팅 파일도 많아 지다보니 원활한 관리 차원에서 분리하는 것이 적절하다고 생각했다. 두번째는 아이패드와 맥북, 아이폰 어디서든 포스팅 글을 작성 할 수 있도록 iCloud 공유 공간으로의 이동이다. 프로젝트는 git으로 관리를 하지만 포스팅 글은 iCloud로 관리하여 언제 어디서든 실시간으로 아이디어와 생각을 정리 할 수 있기 위해 분리를 진행했다. 하지만 문제는 포스팅 글을 빌드 하고 배포하는 과정은 어짜피 맥북 환경이지만 포스팅 글 위치에서 빌드/배포 하기 위해서는 결국 프로젝트 경로로 이동을 해야 한다는 점이다. 그래서 포스팅 글 공간에서 빌드가 가능하도록 스크립트를 작성했다.

스크립트

  • 사실 어려운 스크립트는 아니다. 스크립트를 실행하며 넘긴 파라미터와 npm의 --prefix 옵션을 활용하여 경로 이동없이 명령어를 실행한다는 점만 이해하면 된다.
>> ./deploy.sh 
>> ./deploy.sh build
>> ./deploy.sh deploy

#!/bin/bash

TARGET_DIR="~/project/ballboyDev.github.io/"

echo "Running npm run build in ${TARGET_DIR}"
npm --prefix "${TARGET_DIR}" run app:${1:-dev}

if [ "${1:-dev}" = "build" ]; then

    read -p "Do you want to deploy? (y/n): " a1

    if [[ "${a1}" == [Yy]* ]]; then
        echo "Deploying..."
        npm --prefix "${TARGET_DIR}" run app:deploy
    fi

elif [ "${1:-dev}" = "dev" ]; then

    read -p "Do you want to open built page? (y/n): " a2

    if [[ "${a2}" == [Yy]* ]]; then
        echo "open index page"
        open "${TARGET_DIR}/_dist/index.html"
    fi

fi

echo "Done."