rlm@1: rlm@1: (ns clojureDemo.sys-utils rlm@1: rlm@1: (:use [clojure.contrib duck-streams str-utils shell-out]) rlm@1: (:import java.io.File) rlm@1: ) rlm@1: rlm@1: rlm@1: rlm@1: (defn rename [file] rlm@1: rlm@1: (if (re-matches #".*\.JPG$" (str file)) rlm@1: (sh "mv" (str file) (re-sub #"\.JPG" ".jpg" (str file))) rlm@1: nil)) rlm@1: rlm@1: rlm@1: rlm@1: rlm@1: (defn escape-spaces rlm@1: [string] rlm@1: (re-gsub #" " (str \-) string)) rlm@1: rlm@1: rlm@1: (defn view rlm@1: [string] rlm@1: (seq (char-array string))) rlm@1: rlm@1: (defn parent-source [target file] rlm@1: (File. (str target "/" (.getName (.getParentFile file))"-" (.getName file)))) rlm@1: rlm@1: rlm@1: (defn rsync [file1 file2] rlm@1: (let [*out* nil] rlm@1: (sh "rsync" "-avz" (str file1) (escape-spaces(str file2))))) rlm@1: rlm@1: (defn shunt-file [target file] rlm@1: (rsync (str file) (str (parent-source target file)))) rlm@1: rlm@1: rlm@1: rlm@1: (defn extract-files rlm@1: [regex source destination] rlm@1: rlm@1: (dorun (map (partial shunt-file destination) rlm@1: (filter (comp not nil? (partial re-matches regex) str) (file-seq source))))) rlm@1: rlm@1: rlm@1: (defn file-count [#^java.io.File file] rlm@1: (count (file-seq file))) rlm@1: rlm@1: rlm@1: rlm@1: rlm@1: (comment rlm@1: rlm@1: (defn test-extract rlm@1: [] rlm@1: ((partial extract-files #".*\.JPG" rlm@1: (file-str " /home/r/Desktop/judy_yates_computer_archive/MyDocuments/dallas townhome") rlm@1: (file-str "/home/r/Desktop/judyates_admin/archive-source-images/")))) rlm@1: rlm@1: rlm@1: (defn judy-jpg-extract rlm@1: [] rlm@1: ((partial extract-files #".*\.JPG" rlm@1: (file-str "/home/r/Desktop/judy_yates_computer_archive") rlm@1: (file-str "/home/r/Desktop/judyates_admin/archive-source-images/")))) rlm@1: rlm@1: )