Skip to content

Instantly share code, notes, and snippets.

@zahardzhan
Created January 29, 2010 12:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zahardzhan/289696 to your computer and use it in GitHub Desktop.
Save zahardzhan/289696 to your computer and use it in GitHub Desktop.
part of leica
(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