File permissions

This commit is contained in:
Daniel Ziltener 2019-12-09 13:55:29 +01:00
parent a4ebeaacae
commit 1a87b41140
1 changed files with 46 additions and 25 deletions

View File

@ -10,37 +10,58 @@
:refer [log trace debug info warn error fatal report :refer [log trace debug info warn error fatal report
logf tracef debugf infof warnf errorf fatalf reportf logf tracef debugf infof warnf errorf fatalf reportf
spy get-env]]) spy get-env]])
(:import (java.nio.file Files))) (:import (java.nio.file Files
LinkOption)
(java.nio.file.attribute PosixFileAttributeView)))
(def vault-client (vault/new-client "http://127.0.0.1:8200")) (def vault-client (vault/new-client "http://127.0.0.1:8200"))
;; # Webserver configuration ;; # Webserver configuration
(defn- set-owner [path owner]
(->
(Files/getFileAttributeView path PosixFileAttributeView LinkOption/NOFOLLOW_LINKS)
(.setOwner owner)))
(defn- set-group [path group]
(->
(Files/getFileAttributeView path PosixFileAttributeView LinkOption/NOFOLLOW_LINKS)
(.setGroup group)))
(defn make-dirs! [{:keys [company-name]}] (defn make-dirs! [{:keys [company-name]}]
(doseq [dir-str ["/srv/http/staging.%s.talent.careers-cache" (let [attrs (Files/readAttributes (.toPath (io/file "srv/http/www.sompani.com"))
"/srv/http/staging.%s.talent.careers-logs" PosixFileAttributeView
"/srv/http/staging.%s.talent.careers-sessions" LinkOption/NOFOLLOW_LINKS)
"/srv/http/staging.%s.talent.careers-uploads" group (.group attrs)
"/srv/http/staging.%s.talent.careers.1234" owner (.owner attrs)]
"/srv/http/%s.talent.careers-cache" (doseq [dir-str ["/srv/http/staging.%s.talent.careers-cache"
"/srv/http/%s.talent.careers-logs" "/srv/http/staging.%s.talent.careers-logs"
"/srv/http/%s.talent.careers-sessions" "/srv/http/staging.%s.talent.careers-sessions"
"/srv/http/%s.talent.careers-uploads" "/srv/http/staging.%s.talent.careers-uploads"
"/srv/http/%s.talent.careers.1234"] "/srv/http/staging.%s.talent.careers.1234"
:let [dir (.toPath (io/file dir-str))]] "/srv/http/%s.talent.careers-cache"
(Files/createDirectory dir nil) "/srv/http/%s.talent.careers-logs"
;; (sh/sh "install" "-o" "http" "-g" "http" "-d" (format dir company-name) :dir "/srv/http") "/srv/http/%s.talent.careers-sessions"
) "/srv/http/%s.talent.careers-uploads"
(Files/createSymbolicLink (.toPath (io/file (format "/srv/http/staging.%s.talent.careers"))) "/srv/http/%s.talent.careers.1234"]
(.toPath (io/file (format "/srv/http/staging.%s.talent.careers-1234"))) :let [dir (.toPath (io/file (format dir-str company-name)))]]
nil) (Files/createDirectory dir nil)
(Files/createSymbolicLink (.toPath (io/file (format "/srv/http/%s.talent.careers"))) (set-owner dir owner)
(.toPath (io/file (format "/srv/http/%s.talent.careers-1234"))) (set-group dir group)
nil) )
(let [link (.toPath (io/file (format "/srv/http/staging.%s.talent.careers" company-name)))]
;; (debug (sh/sh "ln" "-s" "staging.%s.talent.careers.1234" "staging.%s.talent.careers" :dir "/srv/http")) (Files/createSymbolicLink link
;; (debug (sh/sh "ln" "-s" "%s.talent.careers.1234" "%s.talent.careers" :dir "/srv/http")) (.toPath (io/file (format "/srv/http/staging.%s.talent.careers-1234" company-name)))
) nil)
(set-owner link owner)
(set-group link group))
(let [link (.toPath (io/file (format "/srv/http/%s.talent.careers" company-name)))]
(Files/createSymbolicLink link
(.toPath (io/file (format "/srv/http/%s.talent.careers-1234" company-name)))
nil)
(set-owner link owner)
(set-group link group))))
(defn create-nginx-server! [datamap] (defn create-nginx-server! [datamap]
(doseq [file ["resources/nginx/skel.talent.careers" (doseq [file ["resources/nginx/skel.talent.careers"