[Emacs] Move bin to gen-gh-pages
This commit is contained in:
2
gen-gh-pages/.gitignore
vendored
Normal file
2
gen-gh-pages/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.cask
|
||||
deploy_key
|
7
gen-gh-pages/Cask
Normal file
7
gen-gh-pages/Cask
Normal file
@@ -0,0 +1,7 @@
|
||||
(source org)
|
||||
(source melpa)
|
||||
|
||||
(depends-on "s")
|
||||
(depends-on "use-package")
|
||||
(depends-on "org-plus-contrib")
|
||||
(depends-on "htmlize")
|
17
gen-gh-pages/compile.sh
Executable file
17
gen-gh-pages/compile.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH"
|
||||
THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
TARGET=$(readlink -f "$THIS_DIR/../dotfiles/emacs.d/README.org")
|
||||
|
||||
git clone https://github.com/rejeep/evm.git "$HOME/.evm"
|
||||
evm config path /tmp
|
||||
evm install emacs-25.1-travis --use --skip
|
||||
|
||||
curl -fsSkL https://raw.github.com/cask/cask/master/go | python
|
||||
|
||||
cask install
|
||||
cask exec emacs --script generate-html.el
|
||||
|
||||
cp "$THIS_DIR/../dotfiles/emacs.d/README.html" out/index.html
|
63
gen-gh-pages/deploy.sh
Executable file
63
gen-gh-pages/deploy.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
# This approach was adapted from https://gist.github.com/domenic/ec8b0fc8ab45f39403dd
|
||||
|
||||
THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
cd $THIS_DIR
|
||||
|
||||
set -e # Exit with nonzero exit code if anything fails
|
||||
|
||||
SOURCE_BRANCH="master"
|
||||
TARGET_BRANCH="gh-pages"
|
||||
|
||||
function doCompile {
|
||||
./compile.sh
|
||||
}
|
||||
|
||||
# Pull requests and commits to other branches shouldn't try to deploy, just build to verify
|
||||
if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then
|
||||
echo "Skipping deploy; just doing a build."
|
||||
doCompile
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Save some useful information
|
||||
REPO=`git config remote.origin.url`
|
||||
SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:}
|
||||
SHA=`git rev-parse --verify HEAD`
|
||||
|
||||
# Clone the existing gh-pages for this repo into out/
|
||||
# Create a new empty branch if gh-pages doesn't exist yet (should only happen on first deply)
|
||||
git clone $REPO out
|
||||
cd out
|
||||
git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH
|
||||
cd ..
|
||||
|
||||
# Clean out existing contents
|
||||
rm -rf out/**/* || exit 0
|
||||
|
||||
# Run our compile script
|
||||
doCompile
|
||||
|
||||
# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc
|
||||
ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key"
|
||||
ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv"
|
||||
ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR}
|
||||
ENCRYPTED_IV=${!ENCRYPTED_IV_VAR}
|
||||
|
||||
openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in deploy_key.enc -out deploy_key -d
|
||||
chmod 600 deploy_key
|
||||
eval `ssh-agent -s`
|
||||
ssh-add deploy_key
|
||||
|
||||
# Now let's go have some fun with the cloned repo
|
||||
cd out
|
||||
git config user.name "$COMMIT_AUTHOR_NAME"
|
||||
git config user.email "$COMMIT_AUTHOR_EMAIL"
|
||||
|
||||
# Commit the "changes", i.e. the new version.
|
||||
# The delta will show diffs between new and old versions.
|
||||
git add --all .
|
||||
git commit -m "Deploy to GitHub Pages: ${SHA}"
|
||||
|
||||
git push "$SSH_REPO" "$TARGET_BRANCH"
|
BIN
gen-gh-pages/deploy_key.enc
Normal file
BIN
gen-gh-pages/deploy_key.enc
Normal file
Binary file not shown.
3400
gen-gh-pages/faces.css
Normal file
3400
gen-gh-pages/faces.css
Normal file
File diff suppressed because it is too large
Load Diff
48
gen-gh-pages/generate-html.el
Executable file
48
gen-gh-pages/generate-html.el
Executable file
@@ -0,0 +1,48 @@
|
||||
(package-initialize)
|
||||
|
||||
(require 'ox-html)
|
||||
(require 'htmlize)
|
||||
|
||||
(defmacro do-nothing (name)
|
||||
`(defun ,name (&rest args) nil))
|
||||
|
||||
(do-nothing imalison:add-to-org-agenda-files)
|
||||
(do-nothing imalison:disable-linum-mode)
|
||||
|
||||
(setq emacs-dir
|
||||
(expand-file-name "../dotfiles/emacs.d/"
|
||||
(file-name-directory load-file-name)))
|
||||
|
||||
(setq readme-src (concat emacs-dir "README.org"))
|
||||
|
||||
(require 'use-package)
|
||||
(require 's)
|
||||
(org-babel-tangle-file readme-src)
|
||||
(load-file (concat emacs-dir "org-config.el"))
|
||||
|
||||
(defun export-target (target)
|
||||
(with-current-buffer (find-file-noselect target)
|
||||
(let ((org-export-headline-levels 10))
|
||||
(org-html-export-to-html))))
|
||||
|
||||
(setq org-html-postamble nil)
|
||||
(setq org-html-htmlize-output-type 'css)
|
||||
(setq org-confirm-babel-evaluate nil)
|
||||
|
||||
(defun add-faces-css (exporter)
|
||||
"Insert custom inline css to automatically set the
|
||||
background of code to whatever theme I'm using's background"
|
||||
(setq
|
||||
org-html-head-extra
|
||||
(concat
|
||||
org-html-head-extra
|
||||
(format "<style type=\"text/css\">\n%s</style>\n"
|
||||
(with-temp-buffer
|
||||
(insert-file-contents
|
||||
(concat (file-name-directory load-file-name) "faces.css"))
|
||||
(buffer-string))))))
|
||||
|
||||
(add-hook 'org-export-before-processing-hook 'add-faces-css)
|
||||
(remove-hook 'org-export-before-processing-hook 'imalison:org-inline-css-hook)
|
||||
|
||||
(message (export-target readme-src))
|
Reference in New Issue
Block a user