Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

here are my changes, if you want them #2

Merged
merged 5 commits into from

2 participants

@nicferrier

It clears up the doc a little and my fork of this repo has your emacs binary attached.

I'll recompile it at some point in the way we discussed (using --prefix=/app/emacs or some such)

@technomancy
Owner

Sorry, missed this somehow earlier. Looks good; thanks.

@technomancy technomancy merged commit 3fbf047 into from
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Aug 14, 2012
  1. @nicferrier
  2. @nicferrier

    fix the detect script

    nicferrier authored
  3. @nicferrier

    fix the github download

    nicferrier authored
Commits on Aug 15, 2012
  1. @nicferrier

    fix README

    nicferrier authored
  2. @nicferrier

    markup change

    nicferrier authored
This page is out of date. Refresh to see the latest.
Showing with 28 additions and 17 deletions.
  1. +25 −14 README.md
  2. +2 −2 bin/compile
  3. +1 −1  bin/detect
View
39 README.md
@@ -1,13 +1,20 @@
# Heroku buildpack: Emacs Lisp
-This is an Emacs Lisp Heroku buildpack. It is probably only useful
-with [Elnode](http://www.emacswiki.org/emacs/Elnode).
+This is an Emacs Lisp Heroku buildpack for Elnode.
+
+First make sure you have at LEAST heroku gem version 2.11.0+
+
## Usage
+Make a git repository with a file start-elnode.el:
+
```lisp
-;;; init.el
-(require 'elnode (concat load-file-name "elnode.el"))
+;;; start-elnode.el
+(setq package-archives '(("marmalade" . "http://marmalade-repo.org/packages/")))
+(package-initialize)
+(package-refresh-contents)
+(package-install 'elnode)
(defun handler (httpcon)
"Demonstration function"
@@ -16,13 +23,19 @@ with [Elnode](http://www.emacswiki.org/emacs/Elnode).
`("Server" . ,(concat "GNU Emacs " emacs-version)))
(elnode-http-return httpcon "<html><body><h1>Hello from Emacs!</h1></body></html>"))
-(elnode-start 'handler (string-to-number (or (getenv "PORT") "8080")) "0.0.0.0")
+(elnode-start
+ 'handler
+ :port (string-to-number (or (getenv "PORT") "8080"))
+ :host "0.0.0.0")
(while t (accept-process-output nil 1))
```
- # requires heroku gem version 2.11.0+
- $ heroku create --stack cedar --buildpack http://github.com/technomancy/heroku-buildpack-emacs.git
+add heroku as a remote to the repo:
+
+ $ heroku create --stack cedar --buildpack http://github.com/nicferrier/heroku-buildpack-emacs.git
+
+and then deploy the app by pushing to heroku:
$ git push heroku master
...
@@ -30,20 +43,18 @@ with [Elnode](http://www.emacswiki.org/emacs/Elnode).
-----> Fetching custom buildpack
-----> Emacs Lisp app detected
-----> Downloading Emacs 24.0.50.1
- Downloading Emacs 24 pretest from http://p.hagelb.org/emacs.tar.gz...
+ Downloading Emacs 24 pretest from github
...done
-The buildpack will detect that your app has an `init.el` in the root
+The buildpack will detect that your app has a `start-elnode.el` in the root
and download a copy of the Emacs 24 pretest to bundle in your slug.
The Procfile for Emacs Lisp apps currently needs to untar that copy of
Emacs before running and symlink it to /tmp/emacs, like this:
- web: tar xzf emacs.tar.gz && ln -s $PWD/emacs /tmp/emacs; emacs/bin/emacs --daemon --load init.el
+ web: tar xzf emacs.tar.gz && ln -s $PWD/emacs /tmp/emacs; emacs/bin/emacs --daemon --load start-elnode.el
+
-This is obviously undesired since it means other users could interfere
-with this symlink, so a way to compile Emacs without referring to the
-/tmp directory needs to be discovered. Until then, don't use this
-buildpack for anything you would need to keep secure.
+## Re-compiling the buildpack Emacs
The current Emacs tarball is compiled from the pretest of version 24
with this invocation:
View
4 bin/compile
@@ -7,6 +7,6 @@ indent() {
echo "-----> Found an init.el file."
# TODO: cache this
-echo "Downloading Emacs 24 pretest from http://p.hagelb.org/emacs.tar.gz..." | indent
-curl -s -o $1/emacs.tar.gz http://p.hagelb.org/emacs.tar.gz
+echo "Downloading Emacs 24 pretest from github..." | indent
+curl -L -s -o $1/emacs.tar.gz https://github.com/downloads/nicferrier/heroku-buildpack-emacs/static-emacs.tar.gz
echo "...done" | indent
View
2  bin/detect
@@ -1,6 +1,6 @@
#!/bin/sh
-if [ -f $1/init.el ]; then
+if [ -f $1/start-elnode.el ]; then
echo "Emacs Lisp"
exit 0
else
Something went wrong with that request. Please try again.