Created
January 29, 2010 12:29
-
-
Save zahardzhan/289696 to your computer and use it in GitHub Desktop.
part of leica
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn set-root-logger-log-level! [log-level] | |
(let [root-logger (Logger/getLogger "") | |
console-handler (first (.getHandlers root-logger)) | |
date-formatter (java.text.SimpleDateFormat. "HH:mm:ss") | |
log-formatter (proxy [Formatter] [] | |
(format | |
[#^LogRecord record] | |
(str \return | |
(.format date-formatter (Date. (.getMillis record))) | |
\space (.getMessage record) \newline)))] | |
(.setFormatter console-handler log-formatter) | |
(.setLevel console-handler log-level) | |
(.setLevel root-logger log-level))) | |
(defn -main [& args] | |
(with-command-line args | |
*usage* | |
[[account a "домен:имя@аккаунта:пароль для закачивания на датакод"] | |
[move m "директория, в которую перемещать полностью скачанные файлы"] | |
[report r "файл для отчета о закачанных"] | |
[quiet? q? "работать молча"] | |
[debug? d? "писать подробные сообщения для отлова багов"] | |
remaining-args] | |
(set-root-logger-log-level! (cond quiet? (Level/OFF) | |
debug? (Level/FINE) | |
:else (Level/INFO))) | |
(let [jobs-file (some verified/jobs-file remaining-args) | |
working-path (or (some verified/output-dir remaining-args) | |
(verified/output-dir (System/getProperty "user.dir"))) | |
done-path (verified/output-dir move)] | |
(when (and jobs-file working-path) | |
(let [lines (duck/read-lines jobs-file) | |
progress-agent (progress/console-progress-agent) | |
terminator (fn [_] (System/exit 0)) | |
agents (for [line lines] | |
(download.env/download-agent | |
rules/download-rules line | |
:working-path working-path | |
:done-path (when (not= working-path done-path) done-path) | |
:progress-agent progress-agent | |
:termination terminator))] | |
(apply env/bind agents) | |
(dorun (map env/run agents))))))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment