Adding in a Debian example
This commit is contained in:
parent
36dde830ba
commit
731c8ebd1c
40
eg/debian/parse-rfc822.hy
Normal file
40
eg/debian/parse-rfc822.hy
Normal file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env hy
|
||||
; Copyright (c) Paul R. Tagliamonte <paultag@debian.org>, 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)
|
@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env hy
|
||||
; let's check out the party breakdown for a state
|
||||
; Copyright (c) Paul R. Tagliamonte <paultag@debian.org>, 2013 under the terms
|
||||
; of the Expat license, a copy of which you have should have recieved with
|
||||
; the source.
|
||||
|
||||
(import sys)
|
||||
(import-from sunlight openstates)
|
||||
|
Loading…
x
Reference in New Issue
Block a user