   )
   
   
-(defn transform-flatfiles-to-symlinks [repo-path]
+(defn transform_flatfiles_to_symlinks [repo-path]
   (println "Transform begins...")
   (doseq [
           ; the flat file which is supposed to be a symlink to the location which is specified inside its contents
-          rel-symlink (get_all_symlinks_from_repo repo-path)
+          rel_symlink (get_all_symlinks_from_repo repo-path)
+          
+          ^{:tag java.io.File} abs_symlink (new java.io.File (str repo-path (java.io.File/separator) rel_symlink))
           ]
-    (let [;TODO: move this as :let inside doseq
-          ^{:tag java.io.File} abs-symlink (new java.io.File (str repo-path (java.io.File/separator) rel-symlink))
-          ]
-      (if (.isFile abs-symlink);when core.symlinks=false  all symlinks are just files after checkout
-        (transform-flatfile-to-symlink abs-symlink)
-        (println (str "ignoring " 
-                      (if (.isDirectory abs-symlink) 
-                        "directory"
-                        "unknown-type(not dir not file)";this requires changing this code to handle this new type
-                        )
-                      ": " abs-symlink))
-        )
-      
+    (if (.isFile abs_symlink);when core.symlinks=false  all symlinks are just files after checkout
+      (transform_flatfile_to_symlink abs_symlink)
+      (println (str "ignoring " 
+                 (if (.isDirectory abs_symlink) 
+                   "directory"
+                   "unknown-type(not dir not file)";XXX: this requires changing this code to handle this new type
+                   )
+                 ": " abs_symlink))
       )
     )
   (println "Transform ends...")

; the terms of this license.
; You must not remove this notice, or any other, from this software.

;change(?) git windows symlinks
(ns cgws.core
  (:import java.io.File)
  (:import java.io.BufferedReader)

  [flat_file_symlink]
  (with-open [rdr (clojure.java.io/reader flat_file_symlink)]
    (let [
          allLines (line-seq rdr)
          allNonEmptyLines (filter #(not (empty? %)) allLines)
          howManyLines (count allLines)
          howManyNonEmptyLines (count allNonEmptyLines)
          ^String pointsTo (first allLines)
          ]
      {:valid? (and (= 1 howManyLines) (empty? pointsTo))
       :flatfile flat_file_symlink 
       KEY_LinesCount howManyLines
       :non_empty_lines_count howManyNonEmptyLines
       KEY_PointsTo pointsTo
       }
      )
    )
  )

(defn getLinesCount [parsed_ff]
  {:pre [(map? parsed_ff)]
   }
  (let [found (find parsed_ff KEY_LinesCount)
        _ (assert found "you tried to access a 'field' that didn't exist, you should've checked before!")
        ;ie. non nil, it's [key value] vector
        ]
