74 lines
2.4 KiB
V
74 lines
2.4 KiB
V
module caddy
|
|
|
|
import freeflowuniverse.herolib.osal
|
|
import freeflowuniverse.herolib.ui.console
|
|
|
|
pub fn install_caddy_from_release() ! {
|
|
mut url := ''
|
|
if core.is_linux_arm()! {
|
|
url = 'https://github.com/caddyserver/caddy/releases/download/v${version}/caddy_${version}_linux_arm64.tar.gz'
|
|
} else if core.is_linux_intel()! {
|
|
url = 'https://github.com/caddyserver/caddy/releases/download/v${version}/caddy_${version}_linux_amd64.tar.gz'
|
|
} else if core.is_osx_arm()! {
|
|
url = 'https://github.com/caddyserver/caddy/releases/download/v${version}/caddy_${version}_darwin_arm64.tar.gz'
|
|
} else if core.is_osx_intel()! {
|
|
url = 'https://github.com/caddyserver/caddy/releases/download/v${version}/caddy_${version}_darwin_amd64.tar.gz'
|
|
} else {
|
|
return error('unsported platform')
|
|
}
|
|
|
|
mut dest := osal.download(
|
|
url: url
|
|
minsize_kb: 10000
|
|
expand_dir: '/tmp/caddyserver'
|
|
)!
|
|
|
|
mut binpath := dest.file_get('caddy')!
|
|
osal.cmd_add(
|
|
cmdname: 'caddy'
|
|
source: binpath.path
|
|
)!
|
|
}
|
|
|
|
pub fn install_caddy_with_xcaddy(plugins []string) ! {
|
|
console.print_header('Installing xcaddy')
|
|
mut url := ''
|
|
if core.is_linux_arm()! {
|
|
url = 'https://github.com/caddyserver/xcaddy/releases/download/v${xcaddy_version}/xcaddy_${xcaddy_version}_linux_arm64.tar.gz'
|
|
} else if core.is_linux_intel()! {
|
|
url = 'https://github.com/caddyserver/xcaddy/releases/download/v${xcaddy_version}/xcaddy_${xcaddy_version}_linux_amd64.tar.gz'
|
|
} else if core.is_osx_arm()! {
|
|
url = 'https://github.com/caddyserver/xcaddy/releases/download/v${xcaddy_version}/xcaddy_${xcaddy_version}_mac_arm64.tar.gz'
|
|
} else if core.is_osx_intel()! {
|
|
url = 'https://github.com/caddyserver/xcaddy/releases/download/v${xcaddy_version}/xcaddy_${xcaddy_version}_mac_amd64.tar.gz'
|
|
} else {
|
|
return error('unsported platform')
|
|
}
|
|
|
|
mut dest := osal.download(
|
|
url: url
|
|
minsize_kb: 1000
|
|
expand_dir: '/tmp/xcaddy_dir'
|
|
)!
|
|
|
|
mut binpath := dest.file_get('xcaddy')!
|
|
osal.cmd_add(
|
|
cmdname: 'xcaddy'
|
|
source: binpath.path
|
|
)!
|
|
|
|
console.print_header('Installing Caddy with xcaddy')
|
|
|
|
plugins_str := plugins.map('--with ${it}').join(' ')
|
|
|
|
// Define the xcaddy command to build Caddy with plugins
|
|
path := '/tmp/caddyserver/caddy'
|
|
cmd := 'source ${osal.profile_path()!} && xcaddy build v${caddy_version} ${plugins_str} --output ${path}'
|
|
osal.exec(cmd: cmd)!
|
|
osal.cmd_add(
|
|
cmdname: 'caddy'
|
|
source: path
|
|
reset: true
|
|
)!
|
|
}
|