-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrefresh.lisp
More file actions
37 lines (35 loc) · 1.79 KB
/
refresh.lisp
File metadata and controls
37 lines (35 loc) · 1.79 KB
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
33
34
35
36
37
(ns-import 'iterator)
(ns-import 'shell)
(let* ((images (list))
(logfile "$(pwd)/refresh-$(date +%m_%d_%Y-%H-%M).log")
(dockers (load "dockers.list"))
(mk-image (fn (name dir) $(docker build --rm --network host -t $name $dir)))
(image? (fn (i) ((fn (images i)
(if (null images) #f
(if (= (car images) i))
#t
(recur (cdr images) i)))images i)))
(rmi (fn (docker) (if (image? docker) (do
(print "Removing image: " docker)
(if (= (wait $%(docker rmi -f $docker >> $logfile)) 0)
(println " SUCCEEDED")
(println " FAILED"))))))
(create (fn (docker docker-dir) (if docker-dir
(do
(print "Creating image: " docker)
(if (= (wait $%(docker build --rm --network host -t $docker ./$docker-dir >> $logfile)) 0)
(println " SUCCEEDED")
(println " FAILED")))))))
$%(pwd)
(println "Refreshing dockers, output logged to: " logfile)
$%(touch $logfile)
$%(echo "Starting refresh...." >> $logfile)
(for x in (str-split #\newline $(docker images))
(if (> (length x) 0)
(set! images (join (vec-nth (str-split #\space x) 0) images))))
(for dockerp in (reverse dockers)
(let ((docker (car dockerp))) (rmi docker)))
(for dockerp in dockers
(let ((docker (car dockerp))
(docker-dir (cdr dockerp)))
(create docker docker-dir))))