75b94560088e
install Koh 3 as koh with Koh 2 renamed koh2, and find Koh 2 for the migrate tests as koh2 first, never Koh 3 (3.2.5)
- time
- 2026-09-28 17:05 UTC · 2 weeks ago
- machine
- Junes-MacBook-Pro.local
- agent
- claude-opus-5-5
- session
- harden shared path handling
- parent
- c626bc7e3f0b
↓ koh-75b94560.tar.gzatlas at this save
files changed4 files
VERSION+1 −1src/migrate/migrate_test.v+8 −2tests/cli_test.v+8 −1v.mod+1 −1src/migrate/migrate_test.v+8 −2
@@ -21,9 +21,15 @@2121 message string2222 }2323 24+// koh2_binary finds Koh 2: `koh2` since the cutover, `koh` before it, and never Koh 3.2425 fn koh2_binary() ?string {25- path := os.find_abs_path_of_executable('koh') or { return none }26- return path26+ for name in ['koh2', 'koh'] {27+ path := os.find_abs_path_of_executable(name) or { continue }28+ if os.execute('${os.quoted_path(path)} --version').output.starts_with('koh v2') {29+ return path30+ }31+ }32+ return none2733 }2834 2935 fn sh(dir string, command string) !string {tests/cli_test.v+8 −1
@@ -1340,8 +1340,15 @@13401340 13411341 // --- migration -------------------------------------------------------------13421342 1343+// koh2_binary finds Koh 2: `koh2` since the cutover, `koh` before it, and never Koh 3.13431344 fn koh2_binary() string {1344- return os.find_abs_path_of_executable('koh') or { '' }1345+ for name in ['koh2', 'koh'] {1346+ path := os.find_abs_path_of_executable(name) or { continue }1347+ if os.execute('${os.quoted_path(path)} --version').output.starts_with('koh v2') {1348+ return path1349+ }1350+ }1351+ return ''13451352 }13461353 13471354 // run_koh2 runs the Koh 2 binary in a fixture; its own output is not underv.mod+1 −1
@@ -1,6 +1,6 @@11 Module {22 name: 'koh3'3- version: '3.2.4'3+ version: '3.2.5'44 description: 'One SQLite file per repo, one line of history.'55 license: 'MIT'66 }