LoginSignup
0
0

More than 1 year has passed since last update.

vccwを使ってwordpressをローカル上にホイホイセットするプログラム

Last updated at Posted at 2021-06-17
#!/bin/bash
# set -ex
# Generate vccw
tput setaf 6 && echo "vccwのディレクトリとHOSTとなる名称を入力してください..."
read HOSTNAME
THEMEDIR=wp-content/themes/
tput setaf 6 && echo "themeを入力してください..."
read THEMENAME
# THEMEDIRECTORY = $THEMEDIR$THEMENAME

tput setaf 6 && echo "\nTASK [ wp scaffold vccw vccw-${HOSTNAME} ]******************************************************"

# WP-CLIの有無
# WP-CLI パッケージが必要
# https://qiita.com/miya0001/items/687d142d714b1386a44f
# https://github.com/vccw-team/scaffold-vccw
if [ -x "`which wp `" ]; then #WP-CLI をインストールしてあれば
    VCCW_IP_COUNT=$(grep "ip:" ~/.lafcre8/laf_vccw_setting | sed -e s/ip://g | sed -n 1p)
    VCCW_IP_COUNT_UP=$(expr $VCCW_IP_COUNT + 1)
    IP="ip:"
    echo "$IP$VCCW_IP_COUNT_UP" > ~/.lafcre8/laf_vccw_setting
    wp scaffold vccw vccw-$HOSTNAME --host=$HOSTNAME.test --lang=ja --ip=192.168.33.$VCCW_IP_COUNT_UP
    cd vccw-$HOSTNAME
else
    echo 'wp-cliをインストールしてください...'
    exit
fi

まずwp-cliでvccwを設置。これはvccwのパッケージだったかな・・
毎回IPをセットするのもだるいので記録するファイルを用意してそこにカウントしておいてます。

# Git リポジトリ作成
mkdir wordpress
tput setaf 6 && echo "gitリポジトリを登録してください..."
open /Applications/SourceTree.app
read -p '追加しましたか?(y/n)' _key
if [ "${_key}" = "n" ] ;then
    echo 'gitリポジトリを追加してください...'
    exit
fi

Gitの登録も地味にしんどいのですべて流れで作成してしまおうということにしています。

# Atom プロジェクト追加
tput setaf 6 && echo "ProjectManegerに追加してください..."
open /Applications/Atom.app
read -p '追加しましたか?(y/n)' _key
if [ "${_key}" = "n" ] ;then
    echo 'ProjectManegerに追加してください...'
    exit
fi

エディタはAtomを使用していてショートカットでファイルのディレクトリ管理などができるので登録しています。

tput setaf 6 && echo '\nTASK [ vagrant up ]************************************************************'
vagrant up

ここで[vagrant up]

# サーバーごとのMovefile の設置
tput setaf 6 && echo '\nTASK [ copy Movefile ]************************************************************'
sh ~/.lafcre8/wordpress/movefile/__vccw_movefile_copy_xserver.sh

いくつかのサーバーでサイト管理をしてますがそれぞれの記述が記入されたMovefileをコピーして持ってくるスクリプトが[__vccw_movefile_copy_xserver.sh]にかかれてます。

tput setaf 7 && echo "Movefile をコピーします..."
DIR=`pwd | awk -F "/" '{ print $NF }'`
# echo $DIR
read -p '対象サーバーを指定してください...(  [1] /  [2] /  [3] /  [4]/  [5]/  [6] )' _key
if [ "${_key}" = "n" ] ;then
echo 'lafcre8用Movefileを設置します...'
cp ~/.lafcre8/xxx/Movefile.yml ~/$DIR
elif [ "${_key}" = "2" ];then
echo 'lafcre8用Movefileを設置します...'
cp ~/.lafcre8/xxx/Movefile.yml ~/$DIR
fi
exit

対象サーバーの対応keyを打つことでvccw設置ディレクトリへMovefileのコピーを設置します。

# wordmove用にssh-keyのコピー
tput setaf 6 && echo '\nTASK [ copy id_rsa ]************************************************************'
read -p '対象サーバーはxxxxx.xxxx.com ?(y/n)' _key
if [ "${_key}" = "n" ] ;then
    echo 'id_rsaを設置します...'
    sh ~/.lafcre8/__vccw_cp_rsa.sh
else
    echo 'id_rsaを設置します...'
    sh ~/.lafcre8/__vccw_cp_rsa2.sh
fi

ssh接続するためにサーバーごとに対応public keyを変更。
最初はサーバーごとに変更した方がよいかなと思っていたけど一緒でも問題ないのかなと。
同じpublic keyをコピーして配置するように設定

# wordpress ディレクトリにファイル設置
cd wordpress
tput setaf 6 && echo '\nTASK [ sudo cat ~/.lafcre8/.gitignore >> .gitignore ]**************************'
sudo cat ~/.lafcre8/.gitignore >> .gitignore
tput setaf 6 && echo '\nTASK [ sudo cat ~/.lafcre8/.editorconfig >> .editorconfig ]********************'
sudo cat ~/.lafcre8/.editorconfig >> .editorconfig

if [ -e $THEMEDIR ];then
    cd $THEMEDIR
else
    echo 'themeディレクトリが存在していません...[ vagrant up ]しなおして下さい...'
    exit
fi

# theme 設置
tput setaf 6 && echo '\nTASK [ wp scaffold _s ]********************************************************'
if [ ! -e $THEMENAME ];then
    vagrant ssh -c "wp scaffold _s $THEMENAME --theme_name=\"$THEMENAME\" --sassify"
    tput setaf 6 && echo "\nTASK [ wp theme activate $THEMENAME ]**************************************"
    vagrant ssh -c "wp theme activate $THEMENAME"
else
    tput setaf 2 && echo 'そのthemeはすでに使用されています。--activate します...'
    vagrant ssh -c "wp theme activate $THEMENAME"
    cd $THEMENAME
    sudo cp ~/.lafcre8/__vccw_gulp_set.sh .
    exit
fi

# Gulp setting
cd $THEMENAME
tput setaf 6 && echo '\nTASK [ npm install ]***********************************************************'
if [ -e package.json  ]; then
    tput setaf 2 && echo '[OK] package.jsonがセットされています...'
else
    sudo cp ~/.lafcre8/package.json .
    tput setaf 2 && echo '[OK] package.jsonをセットしました...'
fi
# npm init
npm install

tput setaf 6 && echo "\nTASK [ cp ~/.lafcre8/gulpfile.js ]*********************************************"
if [ -e gulpfile.js  ]; then
    tput setaf 2 && echo '[OK] gulpfile.jsがセットされています...'
else
    cp ~/.lafcre8/gulpfile.js .
    tput setaf 2 && echo '[OK] gulpfile.jsをセットしました...'
fi

tput setaf 6 && echo "gulpfile.js の proxy を設定します... [http://$HOSTNAME.test]"
sed -i -e "s/http:\/\/xxxx.test/http:\/\/$HOSTNAME.test/g" gulpfile.js


if [ -e sass/theme  ]; then
    tput setaf 2 && echo '[ERROR] sass/themeがセットされています...'
else
    # sass/theme ディレクトリ 設置
    tput setaf 6 && echo '\nTASK [ cp sass/theme ディレクトリを作成しています... ]********************'
    sudo cp -a ~/.lafcre8/sass/theme sass
    tput setaf 2 && echo '[OK] sass/themeをセットしました...'
    cat >> ./sass/style.scss <<EOF

/*--------------------------------------------------------------
# themes
--------------------------------------------------------------*/
@import "theme/style";
EOF
fi

# inc/
tput setaf 6 && echo '\nTASK [ cp inc/ LAF用ファイルを作成しています... ]****************************'
sudo cp -a ~/.lafcre8/inc .
tput setaf 2 && echo '[OK] inc/* をセットしました...'
tput setaf 6 && echo '\nTASK [ cat functions.php ファイルに追記しています... ]****************************'
cat >> ./functions.php <<EOF
/**
 * const
 * taxonomy
 */

define( 'XXX_TAXONOMY_NEWS', 'news_category' );
define( 'XXX_TAXONOMY_ISSUE', 'issue_category' );

/**
 * post_type
 */

define( 'XXX_POST_TYPE_NEWS', 'news' );
define( 'XXX_POST_TYPE_ISSUE', 'issue' );

/**
 * Enqueue scripts and styles.
 */

 require get_template_directory() . '/inc/enque-script.php';

 /**
  * Custom Post Type for this theme.
  */
 require get_template_directory() . '/inc/post-types.php';

 /**
  * Taxonomys for this theme.
  */
 require get_template_directory() . '/inc/taxonomys.php';

  /**
   * Laf etc for this theme.
   */
  require get_template_directory() . '/inc/laf-etc.php';

EOF

# 変数、関数の略称設定
sh ~/.lafcre8/__vccw_abbreviation.sh

exit
tput setaf 6 && echo "変数・関数等の略称を設定します..."
read ABBREVIATION
tput setaf 6 && echo "[ XXX_ -> $ABBREVIATION ]."

sed -i -e "s/XXX_/${ABBREVIATION}_/g" ./functions.php
sed -i -e "s/XXX_/${ABBREVIATION}_/g" ./inc/post-types.php
sed -i -e "s/XXX_/${ABBREVIATION}_/g" ./inc/taxonomys.php
exit

定数の頭の部分をサイトごとの接頭辞的な名前に書き換え

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0