ollama/web/app/download/page.tsx
2023-07-08 16:48:02 -04:00

35 lines
882 B
TypeScript

import { Octokit } from '@octokit/rest'
import { redirect } from 'next/navigation'
const octokit = new Octokit()
export default async function Download() {
const res = await fetch('https://api.github.com/repos/jmorganca/ollama/releases', { next: { revalidate: 60 } })
const data = await res.json()
if (data.length === 0) {
return new Response('not found', { status: 404 })
}
const latest = data[0]
const assets = latest.assets || []
if (assets.length === 0) {
return new Response('not found', { status: 404 })
}
// todo: get the correct asset for the current arch/os
const asset = assets.find(
(a: any) => a.name.toLowerCase().includes('darwin') && a.name.toLowerCase().includes('.zip')
)
if (!asset) {
return new Response('not found', { status: 404 })
}
if (asset) {
redirect(asset.browser_download_url)
}
return null
}