pip
change
commit 3ba47f978c661ebc1f362bd7185fe9993e16f424
author Alpha Chen <alpha@kejadlen.dev>
date
parent ee54fd71
diff --git a/lotus-land-story/Rakefile b/lotus-land-story/Rakefile
index eb012d7..cae93c9 100644
--- a/lotus-land-story/Rakefile
+++ b/lotus-land-story/Rakefile
@@ -1,7 +1,26 @@
+require "open3"
 require "yaml"
 
 DOMAIN = ENV.fetch("LOTUS_LAND_STORY_DOMAIN")
 
+task bootstrap: "pip:sync"
+
+namespace :pip do
+  task :sync => "requirements.txt" do
+    sh "pip-sync requirements.txt"
+  end
+
+  task :upgrade do
+    out, _ = Open3.capture2e("pip-compile --upgrade --resolver=backtracking requirements.in")
+    File.write("requirements.txt", out)
+  end
+
+  file "requirements.txt" => "requirements.in" do |t|
+    out, _ = Open3.capture2e("pip-compile --resolver=backtracking requirements.in")
+    File.write(t.name, out)
+  end
+end
+
 task terraform: "terraform.tfvars" do
   sh "terraform apply"
 end
diff --git a/lotus-land-story/requirements.in b/lotus-land-story/requirements.in
new file mode 100644
index 0000000..2abe36a
--- /dev/null
+++ b/lotus-land-story/requirements.in
@@ -0,0 +1,4 @@
+ansible
+netaddr
+pip-tools
+psycopg2
diff --git a/lotus-land-story/requirements.txt b/lotus-land-story/requirements.txt
new file mode 100644
index 0000000..5bb1d7e
--- /dev/null
+++ b/lotus-land-story/requirements.txt
@@ -0,0 +1,50 @@
+#
+# This file is autogenerated by pip-compile with Python 3.10
+# by the following command:
+#
+#    pip-compile --resolver=backtracking requirements.in
+#
+ansible==7.4.0
+    # via -r requirements.in
+ansible-core==2.14.4
+    # via ansible
+build==0.10.0
+    # via pip-tools
+cffi==1.15.1
+    # via cryptography
+click==8.1.3
+    # via pip-tools
+cryptography==40.0.1
+    # via ansible-core
+jinja2==3.1.2
+    # via ansible-core
+markupsafe==2.1.2
+    # via jinja2
+netaddr==0.8.0
+    # via -r requirements.in
+packaging==23.0
+    # via
+    #   ansible-core
+    #   build
+pip-tools==6.12.3
+    # via -r requirements.in
+psycopg2==2.9.6
+    # via -r requirements.in
+pycparser==2.21
+    # via cffi
+pyproject-hooks==1.0.0
+    # via build
+pyyaml==6.0
+    # via ansible-core
+resolvelib==0.8.1
+    # via ansible-core
+tomli==2.0.1
+    # via
+    #   build
+    #   pyproject-hooks
+wheel==0.40.0
+    # via pip-tools
+
+# The following packages are considered to be unsafe in a requirements file:
+# pip
+# setuptools