Files
Archive/scripts/fetch-ffmpeg-macos.ps1
T
강 한andClaude Opus 4.8 394d1b9805 Archive v0.1.0 — 사진/영상 라이브러리 관리 프로그램
Tauri v2 + SolidJS + SQLite + ffmpeg 사이드카로 구현한 크로스플랫폼
사진·영상 관리 앱. 로컬/NAS(SFTP·WebDAV·FTP) 소스, 가상 그리드,
인앱 재생, 태그/이동/삭제/undo, 중복 탐지, 포터블 배포.

- archive-db: SQLite 스키마·마이그레이션·단일 writer 스레드 + FTS5 trigram
- archive-vfs: VFS 4백엔드(local/sftp/ftp/webdav) + 자격증명(키체인/볼트)
- archive-indexer: 스캔·해시·썸네일·중복탐지·태그·파일작업·유지보수
- archive-media: localhost HTTP 미디어 서버(Range) + ffmpeg 스트림 잡
- 프론트: 3-pane UI, justified 가상 그리드, 라이트박스, 중복 검토 패널

Rust 테스트 49개 통과. CI: win x64/arm64 포터블 zip + macOS universal dmg.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 22:04:06 +09:00

35 lines
1.4 KiB
PowerShell

# macOS용 ffmpeg/ffprobe 사이드카 — arm64 + x64를 받아 lipo로 universal 생성.
# CI(macos-14)에서 실행. 실패 시 개별 아키텍처 바이너리라도 배치한다.
# 참고: Martin Riedl 빌드(ffmpeg.martin-riedl.de) — 서명·공증됨.
$ErrorActionPreference = "Stop"
$root = Split-Path $PSScriptRoot -Parent
$binDir = Join-Path $root "src-tauri/binaries"
New-Item -ItemType Directory -Force $binDir | Out-Null
# Riedl 최신 릴리스 API (arm64/amd64 각각 ffmpeg/ffprobe zip)
$api = "https://ffmpeg.martin-riedl.de/api/v1/latest"
$release = Invoke-RestMethod $api
function Get-Tool($arch, $tool) {
$tmp = Join-Path ([System.IO.Path]::GetTempPath()) "ff-$arch-$tool"
New-Item -ItemType Directory -Force $tmp | Out-Null
$entry = $release.$tool.$arch
if (-not $entry) { throw "$tool/$arch 다운로드 정보 없음" }
$zip = Join-Path $tmp "$tool.zip"
Invoke-WebRequest $entry.url -OutFile $zip
Expand-Archive $zip -DestinationPath $tmp -Force
$bin = Get-ChildItem $tmp -Recurse -Filter $tool | Select-Object -First 1
return $bin.FullName
}
foreach ($tool in @("ffmpeg", "ffprobe")) {
$arm = Get-Tool "arm64" $tool
$x64 = Get-Tool "amd64" $tool
$out = Join-Path $binDir "$tool-universal-apple-darwin"
# lipo로 universal 결합
& lipo -create $arm $x64 -output $out
& chmod +x $out
Write-Host "[fetch-ffmpeg-macos] $out (universal)"
}