Fix day10pt1 and add correct day10pt2
[adventofcode2019.git] / src / adventofcode2019 / lib.clj
index e84621639e655f385ba0158994ec687a60fdb613..d992475caf866b9d7f992668c6bba59ec390ab53 100644 (file)
@@ -1,6 +1,7 @@
 (ns adventofcode2019.lib
     [:require [clojure.string :as str]
-              [clojure.java.io :as io]])
+              [clojure.java.io :as io]
+              [clojure.java.shell :refer [sh]]])
 
 (defn get-list-from-file
   ([file-name]
@@ -8,9 +9,41 @@
   ([file-name split-regex]
     (str/split (str/trim (slurp file-name)) split-regex)))
 
+(def parse-int
+  #(Integer/parseInt %))
+
 (defmacro input-file []
   (let [bottom-ns (last (str/split (str *ns*) #"\."))]
     (str "resources/" bottom-ns)))
 
-(def parse-int
-  #(Integer/parseInt %))
+(defn manhattan-distance [[ax ay] [bx by]] 
+  (+ (Math/abs (- ax bx))
+     (Math/abs (- ay by))))
+
+(def part1 
+  #(println (str "Part 1: " %)))
+(def part2 
+  #(println (str "Part 2: " %)))
+
+;; FIXME: this is still broken but i give up for now
+; (defn --input-file [for-ns]
+;   (let [bottom-ns (last (str/split for-ns #"\."))
+;         input-url "https://adventofcode.com/2019/day/%d/input"
+;         day-url (->> bottom-ns
+;                      (drop 3)
+;                      (str/join)
+;                      (parse-int)
+;                      (format input-url))
+;         token (str/trim (slurp (io/resource "token")))
+;         res-dir (-> (io/resource "token") 
+;                     (.getPath)
+;                     (str/replace "token" bottom-ns))
+;         cmd ["curl" "-s" "-b" 
+;              (format "\"session=%s\"" token) 
+;              day-url ">" res-dir]]
+;     (if-let [input (io/resource bottom-ns)]
+;             input
+;             (do (apply sh cmd) nil))))
+
+; (defmacro input-file []
+;   (--input-file (str *ns*)))