#!/usr/bin/env node
import { RepoScanner } from './lib/repo-scanner.js'
import Corestore from 'corestore'
import Hyperbee from 'hyperbee'
const store = new Corestore('./pear-git-storage')
const registryCore = store.get({ name: 'registry' })
const registry = new Hyperbee(registryCore, {
keyEncoding: 'utf-8',
valueEncoding: 'json'
})
await registry.ready()
const scanner = new RepoScanner({
registry,
storage: './pear-git-storage'
})
console.log('🔍 Scanning /home/fleeky/git-repos for bare repositories...\n')
let count = 0
for await (const repo of scanner.scan({ paths: ['/home/fleeky/git-repos'], maxDepth: 1 })) {
count++
console.log(`\n📦 ${repo.name}`)
console.log(` Path: ${repo.path}`)
console.log(` Bare: ${repo.isBare ? 'YES' : 'NO'}`)
console.log(` Branch: ${repo.branch}`)
console.log(` Commits: ${repo.commits}`)
// Import it
console.log(` Importing...`)
const imported = await scanner.importRepo(repo)
if (imported) {
console.log(` ✓ Imported: ${imported.url}`)
}
}
console.log(`\n✅ Import complete!`)
console.log(` Total repos found: ${count}`)
console.log(` Repos imported: ${scanner.stats.imported}`)
console.log(` Errors: ${scanner.stats.errors}`)