mirror of
https://gitlab.com/jessieh/simple-shortener.git
synced 2024-11-21 19:11:47 +00:00
Add user-readable error for missing DB mount dir
This commit is contained in:
parent
09a00637f6
commit
e3deae0113
22
src/modules/fs_utils.fnl
Normal file
22
src/modules/fs_utils.fnl
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
;; modules/fs_utils.fnl
|
||||||
|
;; Provides a collection of utilities for performing some filesystem operations
|
||||||
|
|
||||||
|
;; -------------------------------------------------------------------------- ;;
|
||||||
|
;; Module definition
|
||||||
|
|
||||||
|
(local fs_utils {})
|
||||||
|
|
||||||
|
(fn fs_utils.path_exists? [path]
|
||||||
|
"Return true if `path` exists and is accessible.
|
||||||
|
Note that this misuses os.rename in order to check `path`-- mightn't want to touch anything important with this..."
|
||||||
|
(let [(ok? _) (os.rename path path)]
|
||||||
|
ok?))
|
||||||
|
|
||||||
|
(fn fs_utils.dir_exists? [path]
|
||||||
|
"Return true if `path` is a directory and is accessible."
|
||||||
|
(fs_utils.path_exists? (.. path "/")))
|
||||||
|
|
||||||
|
;; -------------------------------------------------------------------------- ;;
|
||||||
|
;; Return module
|
||||||
|
|
||||||
|
fs_utils
|
@ -8,6 +8,11 @@
|
|||||||
(local lume (require :lume))
|
(local lume (require :lume))
|
||||||
(local sqlite (require :sqlite))
|
(local sqlite (require :sqlite))
|
||||||
|
|
||||||
|
;; -------------------------------------------------------------------------- ;;
|
||||||
|
;; Local modules
|
||||||
|
|
||||||
|
(local fs_utils (require :modules.fs_utils))
|
||||||
|
|
||||||
;; -------------------------------------------------------------------------- ;;
|
;; -------------------------------------------------------------------------- ;;
|
||||||
;; Constants
|
;; Constants
|
||||||
|
|
||||||
@ -39,6 +44,16 @@ ORDER BY created DESC")
|
|||||||
;; -------------------------------------------------------------------------- ;;
|
;; -------------------------------------------------------------------------- ;;
|
||||||
;; Initialize database
|
;; Initialize database
|
||||||
|
|
||||||
|
;; ---------------------------------- ;;
|
||||||
|
;; Ensure 'db/' folder exists
|
||||||
|
|
||||||
|
(when (not (fs_utils.dir_exists? "db"))
|
||||||
|
(print "🚨 ERROR: No 'db/' folder to place SQLite database files in.\n❓ Did you forget to mount a volume at '/usr/simple-shortener/db?'")
|
||||||
|
(os.exit -1))
|
||||||
|
|
||||||
|
;; ---------------------------------- ;;
|
||||||
|
;; Connect to SQLite database
|
||||||
|
|
||||||
;; Tables:
|
;; Tables:
|
||||||
;; links | Stores information about shortened links
|
;; links | Stores information about shortened links
|
||||||
;; link_id - The unique base62 identifying string for the shortened link
|
;; link_id - The unique base62 identifying string for the shortened link
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
;; Local modules
|
;; Local modules
|
||||||
|
|
||||||
(local config (require :modules.config))
|
(local config (require :modules.config))
|
||||||
|
(local fs_utils (require :modules.fs_utils))
|
||||||
|
|
||||||
;; -------------------------------------------------------------------------- ;;
|
;; -------------------------------------------------------------------------- ;;
|
||||||
;; Constants
|
;; Constants
|
||||||
@ -38,6 +39,16 @@ OR last_active <= strftime('%s', 'now', '-" config.session_max_idle_length_hours
|
|||||||
;; -------------------------------------------------------------------------- ;;
|
;; -------------------------------------------------------------------------- ;;
|
||||||
;; Initialize database
|
;; Initialize database
|
||||||
|
|
||||||
|
;; ---------------------------------- ;;
|
||||||
|
;; Ensure 'db/' folder exists
|
||||||
|
|
||||||
|
(when (not (fs_utils.dir_exists? "db"))
|
||||||
|
(print "🚨 ERROR: No 'db/' folder to place SQLite database files in.\n❓ Did you forget to mount a volume at '/usr/simple-shortener/db?'")
|
||||||
|
(os.exit -1))
|
||||||
|
|
||||||
|
;; ---------------------------------- ;;
|
||||||
|
;; Connect to SQLite database
|
||||||
|
|
||||||
;; Tables:
|
;; Tables:
|
||||||
;; sessions | Stores information about current (authorized) client sessions
|
;; sessions | Stores information about current (authorized) client sessions
|
||||||
;; session_id - The unique base62 identifying string for the client session
|
;; session_id - The unique base62 identifying string for the client session
|
||||||
|
Loading…
Reference in New Issue
Block a user