Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Linked SBCL in the README (http works better than https as of today), added support for the fish shell, fixed a syntax error during onboarding. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0d5485b24de04049505f083a82569998 |
User & Date: | Cthulhux 2025-04-17 10:47:56 |
Context
2025-04-17
| ||
10:47 | Linked SBCL in the README (http works better than https as of today), added support for the fish shell, fixed a syntax error during onboarding. ... (Leaf check-in: 0d5485b24d user: Cthulhux tags: trunk) | |
2025-04-15
| ||
10:46 | oops... ;-) ... (check-in: d68c2c789d user: Cthulhux tags: release-1.5.2, trunk) | |
Changes
Changes to README.md.
︙ | ︙ | |||
16 17 18 19 20 21 22 | You'll need **PostgreSQL** with an empty database set up that will hold 42links's data later. You will be asked for the connection data when starting 42links for the first time. ### Application #### Build it yourself | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | You'll need **PostgreSQL** with an empty database set up that will hold 42links's data later. You will be asked for the connection data when starting 42links for the first time. ### Application #### Build it yourself You'll need [**SBCL**](http://www.sbcl.org) with [Quicklisp](https://www.quicklisp.org/beta/#installation) set up. 1. Download this repository, either via [Fossil](https://fossil-scm.org) (`fossil clone https://code.rosaelefanten.org/42links`) or by downloading the tarball or the ZIP archive [from here.](https://code.rosaelefanten.org/42links/info/tip) 2. Run `build.sh` from inside your clone's directory. On non-UNIX platforms, please see the `build.sh` source code for a rough estimate on how to build 42links. 3. Run `./42links` and fill the blanks during the setup process. **It will ask you to set a few environment variables.** If you don't do that, the setup process will start again during the next application start. Please do it. Seriously. 4. 42links will run on the port you told it during the setup. Enjoy. #### Prebuilt Windows binaries |
︙ | ︙ |
Changes to src/onboarding.lisp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ;; Copyright (c) 2025 tux0r. All Rights Reserved. ;; SPDX-License-Identifier: BSD-3-Clause-No-Military-License (in-package #:42links) (defun get-setenv-command-for-current-shell (variable value) ;; rc uses VAR=(val), tcsh uses setenv etc... (switch ((file-namestring (uiop:getenv "SHELL")) :test 'equal) ("rc" (format nil "~A=(~a)" variable value)) ("tcsh" (format nil "setenv ~A ~a" variable value)) (t (format nil "export ~A=~a" variable value)))) (defun show-setenv-commands () "Display all required environment variables for the user to set" (write-line "Please add the following environment variables to your shell as soon as possible:") | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ;; Copyright (c) 2025 tux0r. All Rights Reserved. ;; SPDX-License-Identifier: BSD-3-Clause-No-Military-License (in-package #:42links) (defun get-setenv-command-for-current-shell (variable value) ;; rc uses VAR=(val), tcsh uses setenv etc... (switch ((file-namestring (uiop:getenv "SHELL")) :test 'equal) ("fish" (format nil "set -U ~A ~a" variable value)) ("rc" (format nil "~A=(~a)" variable value)) ("tcsh" (format nil "setenv ~A ~a" variable value)) (t (format nil "export ~A=~a" variable value)))) (defun show-setenv-commands () "Display all required environment variables for the user to set" (write-line "Please add the following environment variables to your shell as soon as possible:") |
︙ | ︙ | |||
94 95 96 97 98 99 100 | (format t "Again: ") (finish-output) (let ((adminpassword-again (str:trim (read-silently)))) (if (string= adminpassword adminpassword-again) ;; Matching passwords: (setf *adminpassword* adminpassword) ;; will be salted in (init-42links-populate-tables) ;; Whoops: | | | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | (format t "Again: ") (finish-output) (let ((adminpassword-again (str:trim (read-silently)))) (if (string= adminpassword adminpassword-again) ;; Matching passwords: (setf *adminpassword* adminpassword) ;; will be salted in (init-42links-populate-tables) ;; Whoops: (format t "You mistyped one of your two passwords. We will use '~a' for now (can be changed in your settings later)." *adminpassword*))))) ;; 3. ask for the application port to run on, (format t "Please specify the port on which 42links shall run (defaults to '~D'): " *appport*) (finish-output) (let ((appport (str:trim (read-line)))) (unless (str:emptyp appport) (setf *appport* (parse-integer appport)))) |
︙ | ︙ |