-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
445 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
PY?=python | ||
PELICAN?=pelican | ||
PELICANOPTS= | ||
|
||
BASEDIR=$(CURDIR) | ||
INPUTDIR=$(BASEDIR)/content | ||
OUTPUTDIR=$(BASEDIR)/output | ||
CONFFILE=$(BASEDIR)/pelicanconf.py | ||
PUBLISHCONF=$(BASEDIR)/publishconf.py | ||
|
||
FTP_HOST=localhost | ||
FTP_USER=anonymous | ||
FTP_TARGET_DIR=/ | ||
|
||
SSH_HOST=note.hackrole.com | ||
SSH_PORT=22 | ||
SSH_USER=daipeng | ||
SSH_TARGET_DIR=/var/www | ||
|
||
S3_BUCKET=my_s3_bucket | ||
|
||
CLOUDFILES_USERNAME=my_rackspace_username | ||
CLOUDFILES_API_KEY=my_rackspace_api_key | ||
CLOUDFILES_CONTAINER=my_cloudfiles_container | ||
|
||
DROPBOX_DIR=~/Dropbox/Public/ | ||
|
||
GITHUB_PAGES_BRANCH=gh-pages | ||
|
||
DEBUG ?= 0 | ||
ifeq ($(DEBUG), 1) | ||
PELICANOPTS += -D | ||
endif | ||
|
||
RELATIVE ?= 0 | ||
ifeq ($(RELATIVE), 1) | ||
PELICANOPTS += --relative-urls | ||
endif | ||
|
||
help: | ||
@echo 'Makefile for a pelican Web site ' | ||
@echo ' ' | ||
@echo 'Usage: ' | ||
@echo ' make html (re)generate the web site ' | ||
@echo ' make clean remove the generated files ' | ||
@echo ' make regenerate regenerate files upon modification ' | ||
@echo ' make publish generate using production settings ' | ||
@echo ' make serve [PORT=8000] serve site at http://localhost:8000' | ||
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' | ||
@echo ' make devserver [PORT=8000] start/restart develop_server.sh ' | ||
@echo ' make stopserver stop local server ' | ||
@echo ' make ssh_upload upload the web site via SSH ' | ||
@echo ' make rsync_upload upload the web site via rsync+ssh ' | ||
@echo ' make dropbox_upload upload the web site via Dropbox ' | ||
@echo ' make ftp_upload upload the web site via FTP ' | ||
@echo ' make s3_upload upload the web site via S3 ' | ||
@echo ' make cf_upload upload the web site via Cloud Files' | ||
@echo ' make github upload the web site via gh-pages ' | ||
@echo ' ' | ||
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' | ||
@echo 'Set the RELATIVE variable to 1 to enable relative urls ' | ||
@echo ' ' | ||
|
||
html: | ||
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) | ||
|
||
clean: | ||
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) | ||
|
||
regenerate: | ||
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) | ||
|
||
serve: | ||
ifdef PORT | ||
cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT) | ||
else | ||
cd $(OUTPUTDIR) && $(PY) -m pelican.server | ||
endif | ||
|
||
serve-global: | ||
ifdef SERVER | ||
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER) | ||
else | ||
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0 | ||
endif | ||
|
||
|
||
devserver: | ||
ifdef PORT | ||
$(BASEDIR)/develop_server.sh restart $(PORT) | ||
else | ||
$(BASEDIR)/develop_server.sh restart | ||
endif | ||
|
||
stopserver: | ||
$(BASEDIR)/develop_server.sh stop | ||
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.' | ||
|
||
publish: | ||
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) | ||
|
||
ssh_upload: publish | ||
scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) | ||
|
||
rsync_upload: publish | ||
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude | ||
|
||
dropbox_upload: publish | ||
cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR) | ||
|
||
ftp_upload: publish | ||
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit" | ||
|
||
s3_upload: publish | ||
s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type | ||
|
||
cf_upload: publish | ||
cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) . | ||
|
||
github: publish | ||
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR) | ||
git push origin $(GITHUB_PAGES_BRANCH) | ||
|
||
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,12 @@ | ||
代码风格统一规范 | ||
================ | ||
|
||
:author: hackrole | ||
:email: [email protected] | ||
:date: 2016-01-08 | ||
:tags: python, pep8, code, style | ||
|
||
|
||
代码建议统一使用pep8规范加上部分最佳实践。 | ||
|
||
风格指南是关于一致性的。风格一致对一个项目更重要。 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,12 @@ | ||
redis sentinel(redis监控) | ||
========================= | ||
author: hackrole | ||
email: [email protected] | ||
date: 2015-12-31 | ||
tags: redis,redis-sentinel,high-avaliable | ||
title: redis高可用监控sentinel配置和使用 | ||
summary: 如何通过配置sentinel实现redis集群高可用 | ||
|
||
:author: hackrole | ||
:email: [email protected] | ||
:date: 2015-12-31 | ||
:tags: redis,redis-sentinel,high-avaliable | ||
:title: redis高可用监控sentinel配置和使用 | ||
:summary: 如何通过配置sentinel实现redis集群高可用 | ||
|
||
sentinel功能 | ||
------------ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
ruby下的irb/iruby如何使用补全 | ||
============================= | ||
|
||
author: hackrole | ||
email: [email protected] | ||
date: 2016-01-08 | ||
tags: ruby,irb,iruby,bond,ruby_completion | ||
:date: 2016-01-08 10:20 | ||
:author: hackrole | ||
:email: [email protected] | ||
:tags: ruby, irb, iruby, bond, ruby_completion | ||
|
||
概述 | ||
==== | ||
|
@@ -34,8 +34,8 @@ bond是一个ruby-gems, 用来增强irb的补全功能. | |
|
||
2) 需要修改~/.irbrc:: | ||
|
||
require 'bond' | ||
require 'bond/completion' | ||
require 'bond' | ||
require 'bond/completion' | ||
|
||
iruby补全 | ||
~~~~~~~~~ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,9 @@ mongodb与第一范式 | |
|
||
:tag: mongodb,1NF,SQL,model | ||
:author: hackrole | ||
:email: [email protected] | ||
:date: 2016-01-08 | ||
|
||
|
||
|
||
mongodb作为一个弱模型化的nosql数据库,被认为是不需要遵守SQL第一范式. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
#!/usr/bin/env bash | ||
## | ||
# This section should match your Makefile | ||
## | ||
PY=${PY:-python} | ||
PELICAN=${PELICAN:-pelican} | ||
PELICANOPTS= | ||
|
||
BASEDIR=$(pwd) | ||
INPUTDIR=$BASEDIR/content | ||
OUTPUTDIR=$BASEDIR/output | ||
CONFFILE=$BASEDIR/pelicanconf.py | ||
|
||
### | ||
# Don't change stuff below here unless you are sure | ||
### | ||
|
||
SRV_PID=$BASEDIR/srv.pid | ||
PELICAN_PID=$BASEDIR/pelican.pid | ||
|
||
function usage(){ | ||
echo "usage: $0 (stop) (start) (restart) [port]" | ||
echo "This starts Pelican in debug and reload mode and then launches" | ||
echo "an HTTP server to help site development. It doesn't read" | ||
echo "your Pelican settings, so if you edit any paths in your Makefile" | ||
echo "you will need to edit your settings as well." | ||
exit 3 | ||
} | ||
|
||
function alive() { | ||
kill -0 $1 >/dev/null 2>&1 | ||
} | ||
|
||
function shut_down(){ | ||
PID=$(cat $SRV_PID) | ||
if [[ $? -eq 0 ]]; then | ||
if alive $PID; then | ||
echo "Stopping HTTP server" | ||
kill $PID | ||
else | ||
echo "Stale PID, deleting" | ||
fi | ||
rm $SRV_PID | ||
else | ||
echo "HTTP server PIDFile not found" | ||
fi | ||
|
||
PID=$(cat $PELICAN_PID) | ||
if [[ $? -eq 0 ]]; then | ||
if alive $PID; then | ||
echo "Killing Pelican" | ||
kill $PID | ||
else | ||
echo "Stale PID, deleting" | ||
fi | ||
rm $PELICAN_PID | ||
else | ||
echo "Pelican PIDFile not found" | ||
fi | ||
} | ||
|
||
function start_up(){ | ||
local port=$1 | ||
echo "Starting up Pelican and HTTP server" | ||
shift | ||
$PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS & | ||
pelican_pid=$! | ||
echo $pelican_pid > $PELICAN_PID | ||
cd $OUTPUTDIR | ||
$PY -m pelican.server $port & | ||
srv_pid=$! | ||
echo $srv_pid > $SRV_PID | ||
cd $BASEDIR | ||
sleep 1 | ||
if ! alive $pelican_pid ; then | ||
echo "Pelican didn't start. Is the Pelican package installed?" | ||
return 1 | ||
elif ! alive $srv_pid ; then | ||
echo "The HTTP server didn't start. Is there another service using port" $port "?" | ||
return 1 | ||
fi | ||
echo 'Pelican and HTTP server processes now running in background.' | ||
} | ||
|
||
### | ||
# MAIN | ||
### | ||
[[ ($# -eq 0) || ($# -gt 2) ]] && usage | ||
port='' | ||
[[ $# -eq 2 ]] && port=$2 | ||
|
||
if [[ $1 == "stop" ]]; then | ||
shut_down | ||
elif [[ $1 == "restart" ]]; then | ||
shut_down | ||
start_up $port | ||
elif [[ $1 == "start" ]]; then | ||
if ! start_up $port; then | ||
shut_down | ||
fi | ||
else | ||
usage | ||
fi |
Oops, something went wrong.