# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
EAPI=8

inherit go-module

DESCRIPTION='Get up and running with large language models.'
HOMEPAGE='https://ollama.com https://github.com/ollama/ollama'
SRC_URI="https://github.com/ollama/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE='MIT'
SLOT='0'
KEYWORDS='~amd64 ~arm64'
IUSE='+systemd rocm'
DEPEND='dev-vcs/git acct-user/ollama acct-group/ollama'
RDEPEND='acct-user/ollama acct-group/ollama'
DOCS=( {SECURITY,CONTRIBUTING,README}.md docs )

src_compile() {
	ego build -o bin/ollama \
		-ldflags "-X main.version=${PV}"
}

src_install() {
	dobin bin/ollama
	einstalldocs
}

pkg_postinst() {
	einfo 'Quick guide:'
	einfo 'ollama serve'
	einfo 'ollama run llama3:70b'
	einfo 'See available models at https://ollama.com/library'
	if use systemd; then
		einfo 'Creating systemd service file...'
		{
			echo '[Unit]'
			echo 'Description=Ollama Service'
			echo 'After=network-online.target'
			echo ''
			echo '[Service]'
			echo 'ExecStart=/opt/Ollama/bin/ollama serve'
			echo 'User=ollama'
			echo 'Group=ollama'
			echo 'Restart=always'
			echo 'RestartSec=3'
			echo ''
			echo '[Install]'
			echo 'WantedBy=default.target'
		} > /usr/lib/systemd/system/ollama.service
		einfo 'Service file created at /etc/systemd/system/ollama.service'
		einfo 'Making service user-startable...'
		mkdir -p /etc/systemd/user
		ln -s /usr/lib/systemd/system/ollama.service /etc/systemd/user/ollama.service
		ln -s /usr/lib/systemd/system/ollama.service /etc/systemd/system/ollama.service
	fi
}