From bba09fdaeb8dcb97ead35d7e88c4658cb1489403 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Tue, 21 Mar 2023 23:14:56 +0100 Subject: [PATCH] fix(cli): make --skip-pull work even if no state is present --- cli/sync.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/cli/sync.ts b/cli/sync.ts index cca505a98c..8d266fc8d5 100644 --- a/cli/sync.ts +++ b/cli/sync.ts @@ -537,6 +537,13 @@ async function push( const alreadySynced: string[] = []; for await (const change of changes) { const stateTarget = path.join(Deno.cwd(), ".wmill", change.path); + let stateExists = true; + try { + await Deno.stat(stateTarget); + } catch { + stateExists = false; + } + if (change.name === "edited") { if ( await handleScriptMetadata( @@ -545,7 +552,7 @@ async function push( alreadySynced ) ) { - if (!opts.raw) { + if (!opts.raw && stateExists) { await Deno.writeTextFile(stateTarget, change.after); } continue; @@ -557,7 +564,7 @@ async function push( alreadySynced ) ) { - if (!opts.raw) { + if (!opts.raw && stateExists) { await Deno.writeTextFile(stateTarget, change.after); } continue; @@ -581,7 +588,7 @@ async function push( obj, diff ); - if (!opts.raw) { + if (!opts.raw && stateExists) { await Deno.writeTextFile(stateTarget, change.after); } } else if (change.name === "added") { @@ -597,7 +604,7 @@ async function push( ) { continue; } - if (!opts.raw) { + if (!opts.raw && stateExists) { await ensureDir(path.dirname(stateTarget)); console.log( `Adding ${getTypeStrFromPath(change.path)} ${change.path}` @@ -611,7 +618,7 @@ async function push( obj, diff ); - if (!opts.raw) { + if (!opts.raw && stateExists) { await Deno.writeTextFile(stateTarget, change.content); } } else if (change.name === "deleted") {