From 4bfd3e011fabf486882174aaf86f462533877b22 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Tue, 3 Oct 2023 01:14:51 +1100 Subject: Add ways to deploy --- Makefile | 3 +++ bom.el | 10 ++++++---- init.el | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 Makefile create mode 100644 init.el 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 +;; 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 . + +;;; 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) -- cgit v1.2.3