summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2022-07-07 21:56:17 -0400
committerDavid Thompson <dthompson2@worcester.edu>2022-07-07 21:56:17 -0400
commita090d0a7c9168ca6292c6cdf1b8c27c5a067c085 (patch)
tree5542cf5c17662acd570fb9f892ced59b84ca5c33 /scripts
parentddefe10ba133c8397ddf46c15e2614c1748ddf99 (diff)
Automatically add Haunt's modules to Guile's load path at startup.
This fixes a longstanding usability issue where people would install Haunt to /usr/local and then wonder why Haunt doesn't work, which was because Guile's default load path is /usr and thus could not find the newly installed modules in /usr/local. I received several emails about this over the years and didn't know to deal with it. Many thanks to Daniel Meißner for pointing out that Guix had already found a solution to this problem because of course Guix would have this problem solved! Ludovic is an autotools wizard.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/haunt.in9
1 files changed, 9 insertions, 0 deletions
diff --git a/scripts/haunt.in b/scripts/haunt.in
index 7206036..dd25efb 100755
--- a/scripts/haunt.in
+++ b/scripts/haunt.in
@@ -19,6 +19,15 @@
;;; You should have received a copy of the GNU General Public License
;;; along with Haunt. If not, see <http://www.gnu.org/licenses/>.
+(define-syntax-rule (push! elt v) (set! v (cons elt v)))
+
+;; Automatically add Haunt modules to Guile's load path so that users
+;; aren't wondering why Haunt isn't working when the modules aren't
+;; installed to Guile's default module locations.
+(unless (getenv "HAUNT_UNINSTALLED")
+ (push! "@guilemoduledir@" %load-path)
+ (push! "@guileobjectdir@" %load-compiled-path))
+
(use-modules (haunt ui))
(apply haunt-main (command-line))