Skip to content

Instantly share code, notes, and snippets.

@TakesxiSximada
Created October 4, 2016 01:18
Show Gist options
  • Save TakesxiSximada/95ad1ed05d1811738e95eef355fe4f72 to your computer and use it in GitHub Desktop.
Save TakesxiSximada/95ad1ed05d1811738e95eef355fe4f72 to your computer and use it in GitHub Desktop.
NG環境構築
NG_CONF_ROOT_CONF := $(CURDIR)/etc/ng
NG_CONF_DIR := $(CURDIR)/etc/ng.d
NG_LOCAL := $(CURDIR)/local
NG_LOCAL_CONF_NG := $(NG_CONF_DIR)/100-ng-local.sh
.PHONY: create
create:
mkdir -p \
etc \
home \
local/bin \
var/cache/ \
var/cache/download \
var/cache/wheelhouse \
var/src \
var/lib \
var/run \
var/sock \
var/log
make config
make conda
make gvm
make nvm
make rbenv
make ruby-build
make perlbrew
.PHONY: config
config: $(NG_CONF_ROOT_CONF) $(NG_LOCAL_CONF_NG)
@echo "completed ... $(NG_CONF_ROOT_CONF)"
$(NG_CONF_DIR):
mkdir -p $(NG_CONF_DIR)
$(NG_CONF_ROOT_CONF): $(NG_CONF_DIR)
echo 'script_dir=$$(cd $$(dirname $${BASH_SOURCE:-$$0}); pwd); for conf in `find $$script_dir/ng.d -type f`; do source $$conf; done ' > $(NG_CONF_ROOT_CONF)
$(NG_LOCAL_CONF_NG):
echo "export PATH=\"$(NG_LOCAL)/bin:\$$PATH\"" > $(NG_LOCAL_CONF_NG)
# Miniconda2-latest-MacOSX-x86_64.sh
# Miniconda3-latest-MacOSX-x86_64.sh
MINICONDA_DOWNLOAD_URL := https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
MINICONDA_INSTALLER = $(CURDIR)/var/cache/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
MINICONDA_LIB_PATH = $(CURDIR)/var/lib/miniconda3
MINICONDA_CONF_FILE := $(NG_CONF_DIR)/miniconda3.sh
.PHONY: conda
conda: $(MINICONDA_LIB_PATH) $(MINICONDA_CONF_FILE)
echo "complete"
$(MINICONDA_INSTALLER):
mkdir -p `dirname $(MINICONDA_INSTALLER)`
curl -L $(MINICONDA_DOWNLOAD_URL) -o $(MINICONDA_INSTALLER)
$(MINICONDA_LIB_PATH): $(MINICONDA_INSTALLER)
sh $(MINICONDA_INSTALLER)
$(MINICONDA_CONF_FILE):
echo "export PATH=\"$(MINICONDA_LIB_PATH)/bin:\$$PATH\"" > $(MINICONDA_CONF_FILE)
GVM_INSTALLER_URL := https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
GVM_INSTALLER := $(CURDIR)/var/cache/gvm/gvm-installer
GVM_LIB_PATH := $(CURDIR)/var/lib/gvm
GVM_SCRIPT := $(GVM_LIB_PATH)/scripts/gvm
GVM_SCRIPT_NG := $(NG_CONF_DIR)/gvm
GVM_BRANCH := master
GOROOT_BOOTSTRAP_VERSION=go1.4.2
GOROOT_BOOTSTRAP := $(GVM_LIB_PATH)/gos/$(GOROOT_BOOTSTRAP_VERSION)
GOROOT_BOOTSTRAP_NG := $(NG_CONF_DIR)/goroot-bootstrap.sh
.PHONY: gvm
gvm: $(GVM_SCRIPT_NG) $(GOROOT_BOOTSTRAP_NG)
echo "complete"
$(GVM_INSTALLER):
mkdir -p `dirname $(GVM_INSTALLER)`
curl -L $(GVM_INSTALLER_URL) -o $(GVM_INSTALLER)
$(GVM_SCRIPT): $(GVM_INSTALLER)
sh $(GVM_INSTALLER) $(GVM_BRANCH) `dirname $(GVM_LIB_PATH)`
$(GVM_SCRIPT_NG): $(GVM_SCRIPT)
echo "source $(GVM_SCRIPT)" > $(GVM_SCRIPT_NG)
$(GOROOT_BOOTSTRAP_NG): $(GOROOT_BOOTSTRAP)
echo "export GOROOT_BOOTSTRAP=$(GOROOT_BOOTSTRAP)" > $(GOROOT_BOOTSTRAP_NG)
$(GOROOT_BOOTSTRAP):
source $(GVM_SCRIPT) && gvm install $(GOROOT_BOOTSTRAP_VERSION)
NVM_REPOSITORY := git://github.com/creationix/nvm.git
NVM_LIB_PATH := $(CURDIR)/var/lib/nvm
NVM_SCRIPT_NG := $(NG_CONF_DIR)/nvm.sh
NVM_SCRIPT := $(NVM_LIB_PATH)/nvm.sh
NVM_REQUIRE_SED := /usr/local/bin/gsed
NVM_REQUIRE_SED_PKG := gnu-sed
.PHONY: nvm
nvm: $(NVM_SCRIPT_NG)
mkdir -p $(CURDIR)/var/cache/npm
echo "complete"
$(NVM_REQUIRE_SED):
brew install $(NVM_REQUIRE_SED_PKG)
$(NVM_LIB_PATH): $(NVM_REQUIRE_SED)
git clone $(NVM_REPOSITORY) $(NVM_LIB_PATH)
cd $(NVM_LIB_PATH) && git checkout `git describe --abbrev=0 --tags`
$(NVM_SCRIPT_NG): $(NVM_LIB_PATH)
echo "source $(NVM_SCRIPT)" > $(NVM_SCRIPT_NG)
RBENV_REPOSITORY = https://github.com/rbenv/rbenv.git
RBENV_LIB_PATH = $(CURDIR)/var/lib/rbenv
RBENV_CONF_FILE = $(NG_CONF_DIR)/100-rbenv.sh
.PHONY: rbenv
rbenv: $(RBENV_LIB_PATH) $(RBENV_CONF_FILE)
ln -sf $(RBENV_LIB_PATH) ~/.rbenv
echo "complete"
$(RBENV_LIB_PATH):
git clone $(RBENV_REPOSITORY) $(RBENV_LIB_PATH)
cd $(RBENV_LIB_PATH) && src/configure && make -C src
$(RBENV_CONF_FILE):
echo "export PATH=\"$(RBENV_LIB_PATH)/bin:\$$PATH\"\n" > $(RBENV_CONF_FILE)
echo "RBENV_ROOT=$(RBENV_LIB_PATH)\n" >> $(RBENV_CONF_FILE)
echo "eval \"\$$(rbenv init -)\"\n" >> $(RBENV_CONF_FILE)
RUBY_BUILD_REPOSITORY = https://github.com/rbenv/ruby-build.git
RUBY_BUILD_LIB_PATH = $(RBENV_LIB_PATH)/plugins/ruby-build
.PHONY: ruby-build
ruby-build: $(RUBY_BUILD_LIB_PATH)
echo "complete"
$(RUBY_BUILD_LIB_PATH):
mkdir -p `dirname $(RUBY_BUILD_LIB_PATH)`
git clone $(RUBY_BUILD_REPOSITORY) $(RUBY_BUILD_LIB_PATH)
cd $(RUBY_BUILD_LIB_PATH) && PREFIX=$(NG_LOCAL) sh install.sh
# ------------------------------------------------------------------------------
PERLBREW_INSTALLER_URL := http://install.perlbrew.pl
PERLBREW_INSTALLER := $(CURDIR)/var/cache/install.perlbrew.pl
PERLBREW_REPOSITORY := https://github.com/rbenv/ruby-build.git
PERLBREW_LIB_PATH := $(CURDIR)/var/lib/perlbrew
PERLBREW_SCRIPT := $(PERLBREW_LIB_PATH)/etc/bashrc
PERLBREW_SCRIPT_NG := $(NG_CONF_DIR)/100-perlbrew.sh
.PHONY: perlbrew
perlbrew: $(PERLBREW_SCRIPT_NG)
echo "complete"
$(PERLBREW_INSTALLER):
mkdir -p `dirname $(PERLBREW_INSTALLER)`
curl -kL $(PERLBREW_INSTALLER_URL) -o $(PERLBREW_INSTALLER)
$(PERLBREW_LIB_PATH): $(PERLBREW_INSTALLER)
PERLBREW_ROOT=$(PERLBREW_LIB_PATH) sh $(PERLBREW_INSTALLER)
$(PERLBREW_SCRIPT_NG): $(PERLBREW_LIB_PATH)
echo "# perbrew ng settings\n" > $(PERLBREW_SCRIPT_NG)
echo "source $(PERLBREW_SCRIPT)\n" >> $(PERLBREW_SCRIPT_NG)
echo "PERL_CPANM_OPT=--local-lib=$(PERLBREW_LIB_PATH)\n" >> $(PERLBREW_SCRIPT_NG)
echo "PATH=$(PERLBREW_LIB_PATH)/bin:$$PATH\n" >> $(PERLBREW_SCRIPT_NG)
echo "export PERLBREW_ROOT=$(PERLBREW_LIB_PATH)\n" >> $(PERLBREW_SCRIPT_NG)
echo "export PERLBREW_HOME=$(PERLBREW_LIB_PATH)\n" >> $(PERLBREW_SCRIPT_NG)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment