]> njoseph.me Git - babashka-scripts.git/blobdiff - utils.clj
Shift from standalone scripts to babashka tasks
[babashka-scripts.git] / utils.clj
diff --git a/utils.clj b/utils.clj
deleted file mode 100644 (file)
index a19a9aa..0000000
--- a/utils.clj
+++ /dev/null
@@ -1,72 +0,0 @@
-(ns utils
-  (:require [clojure.string :as str]
-            [clojure.java.io :as io]
-            [cheshire.core :as json]
-            [org.httpkit.client :as http]
-            [lib :refer [download-binary run-cmd]]))
-
-(defn git-pull-rebase-branch
-  "Do git pull and rebase branch with master"
-  []
-  (let [current-branch (str/trim (run-cmd ["git" "branch" "--show-current"]))]
-    (print (run-cmd ["git" "pull" "--rebase"]))
-    (when (not (contains? #{"master" "main"} current-branch))
-      (run! print
-            (map run-cmd
-              '[["git" "checkout" "master"] ["git" "pull" "--rebase"]
-                ["git" "checkout" "-"] ["git" "rebase" "master"]])))))
-
-(defn run-seq
-  "Run a sequence of shell commands on a sequence of arguments.
-
-  Examples:
-
-  1. Play and delete each video from a folder
-     ls | bb -i '(run-seq [\"mpv\" \"rm\"] *input*)'
-  "
-  [commands arguments]
-  (doseq [argument arguments
-          command commands]
-    (println (run-cmd [command argument]))))
-
-(defn install-deb
-  "Install a Debian package given a direct URL to the .deb file."
-  [url]
-  (println "Downloading deb package...")
-  (download-binary url "package.deb")
-  (println "Installing...")
-  (println (run-cmd ["sudo" "apt" "install" "./package.deb"]))
-  (println "Cleaning up..")
-  (io/delete-file "package.deb")
-  (println "Done."))
-
-(defn install-deb-from-GitHub
-  "Install a Debian package given a GitHub URL."
-  [url]
-
-  (assert (.contains url "github.com"))
-
-  (letfn [(extract-GitHub-author-project
-            ;; Extracts a string like author/project from URL.
-            [url]
-            (str/join "/" (subvec (str/split url #"/") 3)))
-          (make-api-url ;; just some string interpolation
-            [author-project]
-            (str "https://api.github.com/repos/"
-                 author-project
-                 "/releases/latest"))
-          (get-assets ;; Download list of assets from GitHub
-            [api-url]
-            (:assets (json/parse-string
-                      (:body @(http/get api-url)) true)))
-          (find-url-to-deb ;; Find Debian package URL from assets
-            [assets]
-            (some #(if (str/ends-with? % "deb") %)
-                  (map #(:browser_download_url %) assets)))]
-
-    (let [author-project (extract-GitHub-author-project url)
-          api-url (make-api-url author-project)
-          assets (get-assets api-url)
-          deb-url (find-url-to-deb assets)]
-      ;; Download and install Debian package
-      (install-deb deb-url))))