]> git.r.bdr.sh - rbdr/blog/blobdiff - lib/blog.js
Fixes for remote setup
[rbdr/blog] / lib / blog.js
index ba9ae534f25b067acde2b271f2139f51b02b79f7..0b291dfa71b8c00dd40438c30e5728459f38ae52 100644 (file)
@@ -76,8 +76,10 @@ module.exports = class Blog {
     }
     catch {};
     await this._shift();
-    await this._ensurePostsDirectoryExists(join(this.postsDirectory, '0'));
-    await this.update(postLocation);
+    const firstDirectory = join(this.postsDirectory, '0'); 
+    await rm(firstDirectory, { recursive: true, force: true });
+    await this._ensurePostsDirectoryExists(firstDirectory);
+    await this._update(postLocation);
   }
 
   /**
@@ -96,18 +98,7 @@ module.exports = class Blog {
       await this.syncDown();
     }
     catch {};
-    const metadata = await this._getMetadata();
-    await this._ensurePostsDirectoryExists();
-    await this._copyPost(postLocation);
-    await this._writeMetadata(metadata);
-
-    await this._archive(postLocation);
-
-    await this.generate();
-    try {
-      await this.syncUp();
-    }
-    catch {};
+    const metadata = await this._update();
   }
 
   /**
@@ -206,7 +197,9 @@ module.exports = class Blog {
    * @instance
    */
   async syncDown() {
+    internals.debuglog('Pulling remote state');
     await Remote.syncDown(this.remoteConfig, this.blogDirectory)
+    internals.debuglog('Pulled remote state');
   }
 
   /**
@@ -218,9 +211,30 @@ module.exports = class Blog {
    * @instance
    */
   async syncUp() {
+    internals.debuglog('Pushing remote state');
     await Remote.syncUp(this.remoteConfig, this.blogDirectory)
+    internals.debuglog('Pushed remote state');
   }
 
+  // Adds the passed path to slot 0, and generates files.
+
+  async _update(postLocation) {
+
+    const metadata = await this._getMetadata();
+    await this._ensurePostsDirectoryExists();
+    await this._copyPost(postLocation);
+    await this._writeMetadata(metadata);
+
+    await this._archive(postLocation);
+
+    await this.generate();
+    try {
+      await this.syncUp();
+    }
+    catch {};
+  }
+
+
   // Parses Gemini for each page, copies assets and generates index.
 
   async generate() {