Skip to content

Instantly share code, notes, and snippets.

@bcambel
Last active December 26, 2015 12:59
Show Gist options
  • Select an option

  • Save bcambel/7155211 to your computer and use it in GitHub Desktop.

Select an option

Save bcambel/7155211 to your computer and use it in GitHub Desktop.
(def requirements_file "requirements.txt")
(use 'clojure.java.io)
(use '[clojure.string :only (join split)])
(slurp requirements_file)
(defn process-line [line]
(let [single-line (split line #"==")
result (into '() single-line)]
(reverse result)))
(process-line "Fabric==1.6")
(defn requirements-reader [file]
(let [incoming (split (slurp file) #"\n")
result (map #(process-line %) incoming)]
result))
(def requirements
(requirements-reader requirements_file))
(defn search-requirements [requirements re selector]
(filter #(re-find re %) (map #( selector %) requirements)))
;Find all the libraries starting with major version 1 (1xxxx)
(search-requirements requirements #"^1.*$" second)
;Find all the libraries contains "py" in its name
(search-requirements requirements #"^.*py.*$" first)
;Find all the libraries contains "Flask" in its name
(search-requirements requirements #"^.*Flask.*$" first)
(conj [1 2 3] 4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment