summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fnl/bootstrap.fnl27
1 files changed, 27 insertions, 0 deletions
diff --git a/fnl/bootstrap.fnl b/fnl/bootstrap.fnl
new file mode 100644
index 0000000..8ee3e0f
--- /dev/null
+++ b/fnl/bootstrap.fnl
@@ -0,0 +1,27 @@
+;; Bootstraping for fresh install
+(module bootstrap {autoload {util util}})
+
+(defn- fmt [s ...] (string.format s ...))
+
+(def- packer-path (.. (vim.fn.stdpath :data) :site/pack))
+
+(def- git-clone-url "!git clone --depth 1 https://github.com/%s/%s %s")
+
+(defn- execute [cmd] (vim.api.nvim_command cmd))
+
+(defn- ensure-path [packer-path repository]
+ (fmt "%s/packer/start/%s" packer-path repository))
+
+(defn- ensure [user repository]
+ (let [path (ensure-path packer-path repository)])
+ (if (> (vim.fn.empty (vim.fn.glob path) 0))
+ (do
+ (execute (fmt git-clone-url user repository path))
+ (execute (fmt "packadd %s" repository))
+ true)
+ false))
+
+(defn run [] (let [is_bootstrapped (ensure :wbthomason :packer.nvim)]
+ (ensure :Olical :aniseed)
+ (ensure :lewis6991 :impatient.nvim)
+ is_bootstrapped))