summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Johnson <nick@nicksphere.ch>2022-05-25 00:00:00 +0000
committerNicholas Johnson <nick@nicksphere.ch>2022-05-25 00:00:00 +0000
commit3fdec12929c621017b4f16cd6491080a9b9ee9cf0a523acb2d0c3f12d7ce2e72 (patch)
treeb3e70dfb85b6c04ae71f7fe118f488ba879e387b510abffee5e46eee5b7b99bd
parentfb2f7e1b3d992bcdda7c15410c8bf419087db6bc3c349406df991ce437a60cdc (diff)
downloadjournal-3fdec12929c621017b4f16cd6491080a9b9ee9cf0a523acb2d0c3f12d7ce2e72.tar.gz
journal-3fdec12929c621017b4f16cd6491080a9b9ee9cf0a523acb2d0c3f12d7ce2e72.zip
Separate journal generation from deletion to improve efficiency
-rw-r--r--clean.py32
-rw-r--r--generate.py15
2 files changed, 40 insertions, 7 deletions
diff --git a/clean.py b/clean.py
new file mode 100644
index 0000000..bd71950
--- /dev/null
+++ b/clean.py
@@ -0,0 +1,32 @@
+'''
+ nicksphere Generates a Gemini capsule from existing files
+ Copyright (C) 2022 Nicholas Johnson
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+'''
+
+import os
+import shutil
+
+
+if __name__ == '__main__':
+ root_dir = os.path.dirname(os.path.realpath(__file__))
+ output_dir = os.path.join(root_dir, "public")
+ gemini_output_dir = os.path.join(root_dir, "capsule")
+ html_output_dir = os.path.join(root_dir, "website")
+
+ # delete output directories
+ shutil.rmtree(output_dir, ignore_errors=True)
+ shutil.rmtree(gemini_output_dir, ignore_errors=True)
+ shutil.rmtree(html_output_dir, ignore_errors=True)
diff --git a/generate.py b/generate.py
index dec0c6a..8438ef2 100644
--- a/generate.py
+++ b/generate.py
@@ -31,17 +31,15 @@ if __name__ == '__main__':
os.chdir(os.path.join(root_dir, "static"))
static_gemini_files = [os.path.join(root, name) for root, dirs, files in os.walk(".") for name in files if name.endswith(".gmi")]
- # delete output directories
- shutil.rmtree(output_dir, ignore_errors=True)
- shutil.rmtree(gemini_output_dir, ignore_errors=True)
- shutil.rmtree(html_output_dir, ignore_errors=True)
-
# generate output directory
os.chdir(root_dir)
subprocess.run("hugo")
# generate Gemini output directory
- shutil.copytree(output_dir, gemini_output_dir, ignore=shutil.ignore_patterns("*.html"))
+ try:
+ shutil.copytree(output_dir, gemini_output_dir, ignore=shutil.ignore_patterns("*.html"), dirs_exist_ok=True)
+ except shutil.Error:
+ pass
os.chdir(os.path.join(root_dir, "static"))
@@ -54,7 +52,10 @@ if __name__ == '__main__':
shutil.copy(os.path.join(output_dir, file), file)
# generate HTML output directory
- shutil.copytree(output_dir, html_output_dir, ignore=shutil.ignore_patterns("*.gmi", "gemini_atom"))
+ try:
+ shutil.copytree(output_dir, html_output_dir, ignore=shutil.ignore_patterns("*.gmi", "gemini_atom"), dirs_exist_ok=True)
+ except shutil.Error:
+ pass
os.chdir(html_output_dir)
for file in static_gemini_files: