#!/usr/bin/env hy ; Copyright (c) Paul R. Tagliamonte , 2013 under the terms ; of the Expat license, a copy of which you have should have recieved with ; the source. (import sys) (defn parse-rfc822-file [path] "Parse an RFC822 file" (with-as (open path "r") fd (parse-rfc822-stream fd))) (defn parse-rfc822-stream [fd] "Parse an RFC822 stream" (def bits {}) (def key null) (for [line fd] (if (in ":" line) (do (def line (.split line ":" 1)) (def key (.strip (get line 0))) (def val (.strip (get line 1))) (assoc bits key val)) (do (if (= (.strip line) ".") (assoc bits key (+ (get bits key) "\n")) (assoc bits key (+ (get bits key) "\n" (.strip line))))))) bits) (def block (parse-rfc822-file (get sys.argv 1))) (def source (get block "Source")) (print source "is a(n)" (get block "Description")) (import-from sh apt-cache) (def archive-block (parse-rfc822-stream (.show apt-cache source))) (print "The archive has version" (get archive-block "Version") "of" source)