aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-10-03 01:14:51 +1100
committerYuchen Pei <id@ypei.org>2023-10-03 01:14:51 +1100
commit4bfd3e011fabf486882174aaf86f462533877b22 (patch)
tree29049bb0585c4e4c9df141e244f0e19dc88a5580
parent79f45b51f74b2c8828bdc0d025b7253293054c76 (diff)
Add ways to deploy
-rw-r--r--Makefile3
-rw-r--r--bom.el10
-rw-r--r--init.el38
3 files changed, 47 insertions, 4 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6ecd705
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,3 @@
+serve:
+ @echo "Serving weather forecasts..."
+ emacs --fg-daemon=wea -Q --load init.el --load bom.el --funcall bom-start
diff --git a/bom.el b/bom.el
index eedc5ca..e818983 100644
--- a/bom.el
+++ b/bom.el
@@ -29,6 +29,7 @@
(require 'hierarchy)
(require 'web-server)
+(require 'ox-publish)
(defvar bom-state-files
'((act . "IDN11060")
@@ -44,10 +45,11 @@
(defun bom-api (state)
"Get weather forecast data of STATE from the BOM FTP."
(if-let ((filename (alist-get (intern (downcase state)) bom-state-files)))
- (with-current-buffer
- (find-file-noselect
- (format "/ftp:anonymous@ftp.bom.gov.au:/anon/gen/fwo/%s.xml" filename))
- (libxml-parse-xml-region (point-min) (point-max)))
+ (progn
+ (with-current-buffer
+ (find-file-noselect
+ (format "/ftp:anonymous@ftp.bom.gov.au:/anon/gen/fwo/%s.xml" filename))
+ (libxml-parse-xml-region (point-min) (point-max))))
(user-error "State %s not found" state)))
(defun bom-get-areas (resp)
diff --git a/init.el b/init.el
new file mode 100644
index 0000000..3c17c7f
--- /dev/null
+++ b/init.el
@@ -0,0 +1,38 @@
+;;; init.el -- Emacs init file for deploying the server -*- lexical-binding: t -*-
+
+;; Copyright (C) 2023 Free Software Foundation, Inc.
+
+;; Author: Yuchen Pei <id@ypei.org>
+;; Package-Requires: ((emacs "28.2"))
+
+;; This file is part of bom.el.
+
+;; bom.el is free software: you can redistribute it and/or modify it under
+;; the terms of the GNU Affero General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; bom.el is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU Affero General Public
+;; License along with bom.el. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Emacs init file for deploying the server.
+
+;;; Code:
+
+(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")))
+
+(package-initialize)
+
+(unless (package-installed-p 'web-server)
+ (unless package-archive-contents
+ (package-refresh-contents))
+ (package-install 'web-server))
+
+(setq ange-ftp-try-passive-mode t)