]> njoseph.me Git - babashka-scripts.git/blobdiff - scripts/git.clj
git: minor changes
[babashka-scripts.git] / scripts / git.clj
index b84cffbb395faf22700316da481e3145d4df1bb6..e722c08322476b6162b0663d69d74129b1b0036f 100755 (executable)
@@ -6,8 +6,6 @@
 
 ; Utilities for git operations
 
-(def default-root ".")
-
 (defn- has-git-repo
   [dir]
   (first (filter #(= ".git" %)
   (filter #(has-git-repo %)
     (filter #(.isDirectory %) (.listFiles (io/file root)))))
 
-(defn- git-pull [dir]
+(defn- git-pull
+  "Do a git pull with rebase."
+  [dir]
   (p/process ["git" "-C" dir "pull" "--rebase"]))
 
 (defn git-pull-all
-  "Runs `git-pull` on all the git repositories in a directory"
+  "Runs `git-pull` on all the git repositories in a directory."
   [root]
   (let [dirs (list-dirs root)
         pulls (->> root
                            p/check
                            :out
                            slurp)
-                     pulls)]
+                  pulls)]
     ;; Print corresponding directory name when pulling
     ;; Skip printing already up to date repos
     (doseq [[dir out] (filter #(not (.contains (second %) "is up to date."))
-                              (map vector dirs outputs))]
+                        (map vector dirs outputs))]
       (println (str dir "\n" out)))))
 
 
 (defn git-pull-rebase-branch
-  "Do git pull and rebase branch with master"
+  "Do git pull and rebase branch with master."
   [dir]
+  (git-pull dir)
   (let [current-branch (str/trim (run-cmd ["git" "branch" "--show-current"]))]
-    (git-pull dir)
     (when (not (contains? #{"master" "main"} current-branch))
       (run! print
             (map run-cmd
-                 '[["git" "checkout" "master"]
-                   ["git" "pull" "--rebase"]
-                   ["git" "checkout" "-"]
-                   ["git" "rebase" "master"]])))))
+              [["git" "checkout" "master"] ["git" "pull" "--rebase"]
+               ["git" "checkout" current-branch] ["git" "rebase" "master"]])))))