aboutsummaryrefslogtreecommitdiff
path: root/scripts/fnl/lib.fnl
blob: 100b447554831ef3716da2fc7819bc4cebcd6b13 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(local M {})

(lambda M.contains? [tbl elem]
  (not= nil (table.index-of tbl elem)))

(lambda M.index-of [tbl elem]
  (each [idx value (pairs tbl)]
    (when (= value elem) (lua "return idx")))
  nil)

(lambda M.exec [cmd args]
  (var argstr "")
  (each [_ arg (ipairs args)]
    (set argstr (.. argstr " \"" (string.gsub arg "\"" "\\\"") "\"")))
  (local code (os.execute (.. cmd argstr))))

(lambda M.read-lines [filepath]
  (local file (io.open filepath :r))
  (if file
      (do
        (local lines [])
        (each [line (file:lines)] (table.insert lines line))
        (file:close)
        lines)
      []))

(lambda M.write-lines [filepath lines]
  (local file (io.open filepath :w))
  (file:write (table.concat lines "\n"))
  (file:close))

M