From 0f165c007b03d79b1ab4849819db51017b68ceb6 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 28 Dec 2016 02:08:34 -0800 Subject: [PATCH] [Emacs] Set up travis html generation --- .travis.yml | 7 ++++ bin/Cask | 6 ++++ bin/compile.sh | 19 +++++++++++ bin/deploy.sh | 64 ++++++++++++++++++++++++++++++++++++ bin/deploy_key.enc | Bin 0 -> 1680 bytes bin/generate-html.el | 30 +++++++++++++++++ dotfiles/emacs.d/README.org | 35 ++++++++++++-------- index.html | 2 +- 8 files changed, 148 insertions(+), 15 deletions(-) create mode 100644 .travis.yml create mode 100644 bin/Cask create mode 100755 bin/compile.sh create mode 100755 bin/deploy.sh create mode 100644 bin/deploy_key.enc create mode 100755 bin/generate-html.el diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..a2cc7b41 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,7 @@ +language: generic + +script: bash +env: + global: + - ENCRYPTION_LABEL: "73e6c870aa87" + - COMMIT_AUTHOR_EMAIL: "IvanMalison@gmail.com" diff --git a/bin/Cask b/bin/Cask new file mode 100644 index 00000000..6bd7493d --- /dev/null +++ b/bin/Cask @@ -0,0 +1,6 @@ +(source org) +(source melpa) + +(depends-on "use-package") +(depends-on "org-plus-contrib") +(depends-on "htmlize") diff --git a/bin/compile.sh b/bin/compile.sh new file mode 100755 index 00000000..a100f7a9 --- /dev/null +++ b/bin/compile.sh @@ -0,0 +1,19 @@ +#!/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 + +export EMACS=$(sh -c 'type -P emacs') + +curl -fsSkL https://raw.github.com/cask/cask/master/go | python + +cask install +cask exec emacs --script generate-html.el + +cp "../dotfiles/emacs.d/README.html" out diff --git a/bin/deploy.sh b/bin/deploy.sh new file mode 100755 index 00000000..26dcd18f --- /dev/null +++ b/bin/deploy.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +# This approach was adapted from https://gist.github.com/domenic/ec8b0fc8ab45f39403dd + +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 + +# 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" + +# If there are no changes to the compiled out (e.g. this is a README update) then just bail. +if [ -z `git diff --exit-code` ]; then + echo "No changes to the output on this push; exiting." + exit 0 +fi + +# Commit the "changes", i.e. the new version. +# The delta will show diffs between new and old versions. +git add . +git commit -m "Deploy to GitHub Pages: ${SHA}" + +# 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 + +git push $SSH_REPO $TARGET_BRANCH diff --git a/bin/deploy_key.enc b/bin/deploy_key.enc new file mode 100644 index 0000000000000000000000000000000000000000..a3930cd474c9ec745e81bfe2f8800fb3ce916bed GIT binary patch literal 1680 zcmV;B25G64x2~jJLezZex%S?8cDLo^ z7W(U~@^({gk96*&e6r>*+h|I&;$_%INPG(@#`vg{&l(m0+>k4Cvv1f)cE#mO!R5(( zJZ%5hRu6@TW3C_WV0e1uextVVCA*UQC3B zhzg8>A%`t)w2?VIyarwtYU>vBDWZ5n)6rj7@H2f(!U{ zmKm;Ua)wo=SJ8c*5+Fm5yZ-L=U|V9?F#t_BY+Ev_I{01sN8s8U2u2apfP-T?&5 zv7C1{bhehTQ$Rk3PpWn6Su$i6`p~BOK(UkFo6hA zpy0mXHA$z4*rW-9?NedeHWm+Pq6i)tT_V zJ@o0(aX6!$pr$){hbYAiy7ao8hyo2KEU%9hvE(w-{z&2c=_Vi2m9-PTVpNdi69zfH^=~#?(pV;Yi=4$#M3WlcbmzD%KZ6lanM30 zCl@T^)RAaj{}Tcwd11AISLHLdfr49;9zj7I5f#y!D*>MxVq-AgfZn$|~n{r%yhcfM{Xzj7+E?f0xaKN`}dVk_ygZwOl9YyMF!Oz0T4?Z$&3os-@4MIx^#Px>nGSc^z;8( zAt1fDrBopyCe*DDp&tE>M;vHccV=AOozBn7SLn`uHlkuwr*)1lf{HmB@u+f3m7=!wky`;(`7wISFDaom* z*-2m^?7GMyM!e6aZpkVy" smartparens-mode-map) (unbind-key "C-" smartparens-mode-map) (unbind-key "M-" smartparens-mode-map))) @@ -2779,21 +2780,21 @@ Intero seems to be causing hangs, so it has been disabled ** Document *** org **** config -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle org-config.el (use-package org :ensure org-plus-contrib :bind (:map org-mode-map (("C-e" . end-of-visual-line))) :preface (progn - ;; XXX: These should probably be moved to config, right? - (defvar-setq org-startup-indented nil) - (defvar-setq org-startup-folded t) - (defvar-setq org-edit-src-content-indentation 0) - (defvar-setq org-src-preserve-indentation t) - (defvar-setq org-directory "~/Dropbox/org") - (defvar-setq org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org") - (defvar-setq org-mobile-directory "~/Dropbox/Apps/MobileOrg") + ;; XXX: These should probably be moved to config, right? + (setq org-startup-indented nil + org-startup-folded t + org-edit-src-content-indentation 0 + org-src-preserve-indentation t + org-directory "~/Dropbox/org" + org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org" + org-mobile-directory "~/Dropbox/Apps/MobileOrg") (setq org-goto-interface 'outline-path-completion org-goto-max-level 10 @@ -2914,7 +2915,7 @@ Intero seems to be causing hangs, so it has been disabled "STARTED(s!)" "WAIT(w!)" "BACKLOG(b!)" "|" "DONE(d!)" "HANDLED(h!)" "EXPIRED(e!)" "CANCELED(c!)"))) - (defvar-setq helm-org-headings-fontify t) + (setq helm-org-headings-fontify t) (setq org-todo-repeat-to-state "TODO") (setq org-agenda-span 10) @@ -2924,7 +2925,6 @@ Intero seems to be causing hangs, so it has been disabled "%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM") (add-to-list 'org-show-context-detail '(org-goto . lineage)) - (sp-local-pair 'org-mode "~" "~") (add-to-list 'org-src-lang-modes '("plantuml" . plantuml)) @@ -3191,6 +3191,12 @@ Intero seems to be causing hangs, so it has been disabled ;; blame. )) #+END_SRC +**** Load org-config.el +I put some org-mode specific configs in a separate file so that they can be used +separately. This means that I need to load this file in init.el. +#+BEGIN_SRC emacs-lisp +(load-file (concat (file-name-directory load-file-name) "org-config.el")) +#+END_SRC **** Use frames #+BEGIN_SRC emacs-lisp (use-package org @@ -3203,7 +3209,7 @@ Intero seems to be causing hangs, so it has been disabled #+END_SRC **** Set Background Color of Source Blocks for Export This was taken from [[http://emacs.stackexchange.com/questions/3374/set-the-background-of-org-exported-code-blocks-according-to-theme][here]]. -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle org-config.el (use-package org :config (progn @@ -3225,7 +3231,7 @@ background of code to whatever theme I'm using's background" **** Use my own default naming scheme for org-headings First we define a function that will generate a sanitized version of the heading as its link target. -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle org-config.el (defun imalison:org-get-raw-value (item) (when (listp item) (let* ((property-list (cadr item))) @@ -3249,7 +3255,7 @@ as its link target. This function replaces the default naming scheme with a call to ~imalison:generate-name~, and uses a slightly different uniquify approach. -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle org-config.el (use-package ox :ensure nil :demand t @@ -4062,6 +4068,7 @@ I have currently disabled key-chord because it may cause typing lag. (setq jabber-alert-message-function 'jabber-message-content-message))) #+END_SRC ** htmlize +This package is needed to export org to html. #+BEGIN_SRC emacs-lisp (use-package htmlize) #+END_SRC diff --git a/index.html b/index.html index f7ad326c..2a51b4ed 100644 --- a/index.html +++ b/index.html @@ -186,7 +186,7 @@ + pre.src {background-color: #fdf6e3; color: #657b83;}