feat(sglang-deploy): replace nginx with caddy
Assisted-by: GLM 5.3 Flash
This commit is contained in:
Regular → Executable
+71
-5
@@ -74,6 +74,12 @@ if ($name eq 'rpm') {
|
||||
|
||||
if ($name eq 'dnf') {
|
||||
my @pkgs = grep { !/^-/ && $_ ne 'install' } @args;
|
||||
# Parenthesised on purpose: a named list operator swallows a trailing &&,
|
||||
# and the unparenthesised form asks the grep about a boolean, not the list.
|
||||
if ((grep { $_ eq 'caddy' } @pkgs) && -f "$FIX/caddy-no-package") {
|
||||
print STDERR "Error: Unable to find a match: caddy\n";
|
||||
exit 1;
|
||||
}
|
||||
my $installed = fixture_text('rpm-installed', '');
|
||||
for my $pkg (@pkgs) {
|
||||
$installed .= "$pkg\n" unless $installed =~ /^\Q$pkg\E$/m;
|
||||
@@ -82,6 +88,12 @@ if ($name eq 'dnf') {
|
||||
print {$fh} $installed;
|
||||
close($fh);
|
||||
}
|
||||
# A package transaction that installs caddy leaves the binary where PATH
|
||||
# finds it, the way the real package does. The grep is parenthesised as
|
||||
# above: a named list operator swallows a trailing &&.
|
||||
if ((grep { $_ eq 'caddy' } @pkgs) && !-e '/usr/bin/caddy') {
|
||||
symlink($0, '/usr/bin/caddy');
|
||||
}
|
||||
print "Installing: @pkgs\n";
|
||||
exit 0;
|
||||
}
|
||||
@@ -138,14 +150,32 @@ if ($name eq 'curl') {
|
||||
print "\n__HTTP__$code\n" if $joined =~ /__HTTP__/;
|
||||
exit 0;
|
||||
}
|
||||
if ($url =~ m{api\.github\.com/repos/caddyserver/caddy}) {
|
||||
print fixture_text('caddy-release.json', qq({"tag_name":"v2.10.2"}\n));
|
||||
exit 0;
|
||||
}
|
||||
if ($url =~ m{api\.github\.com}) {
|
||||
print fixture_text('releases.json', qq({"tag_name":"v0.5.19"}\n));
|
||||
exit 0;
|
||||
}
|
||||
if ($url =~ m{github\.com/caddyserver/caddy/releases/download/}) {
|
||||
my $dest;
|
||||
for my $i (0 .. $#args) {
|
||||
$dest = $args[$i + 1] if $args[$i] eq '-o';
|
||||
}
|
||||
if (defined $dest) {
|
||||
open(my $fh, '>', $dest) or exit 1;
|
||||
print {$fh} "stub caddy release archive\n";
|
||||
close($fh);
|
||||
}
|
||||
exit 0;
|
||||
}
|
||||
if ($url =~ m{hub\.docker\.com}) {
|
||||
if (-f "$FIX/image-missing") {
|
||||
print STDERR "curl: (22) The requested URL returned error: 404\n";
|
||||
exit 22;
|
||||
# A definitive 404 on a tag lookup is what the script reads as
|
||||
# unpublished; a curl-level failure would read as cannot-tell.
|
||||
if ($url =~ m{/tags/[A-Za-z0-9._-]+$} && -f "$FIX/image-missing") {
|
||||
print "404";
|
||||
exit 0;
|
||||
}
|
||||
if ($url =~ /tags\?/) {
|
||||
# A tag listing, newest first: the rig's AMD development build.
|
||||
@@ -181,8 +211,44 @@ if ($name eq 'openssl') {
|
||||
exit 0;
|
||||
}
|
||||
|
||||
if ($name eq 'nginx') {
|
||||
print "nginx: configuration file /etc/nginx/nginx.conf test is successful\n";
|
||||
if ($name eq 'caddy') {
|
||||
my $joined = join(' ', @args);
|
||||
if ($joined =~ /version/) {
|
||||
print "v2.10.2 h1:stub\n";
|
||||
exit 0;
|
||||
}
|
||||
if ($joined =~ /validate/) {
|
||||
print "Valid configuration\n";
|
||||
exit 0;
|
||||
}
|
||||
exit 0;
|
||||
}
|
||||
|
||||
if ($name eq 'tar') {
|
||||
# The release-binary install extracts the archive and installs the binary it
|
||||
# names; the stub lays down a link to this dispatcher, so the installed
|
||||
# stand-in answers and logs like every other stubbed command.
|
||||
my $dest_dir;
|
||||
for my $i (0 .. $#args) {
|
||||
$dest_dir = $args[$i + 1] if $args[$i] eq '-C';
|
||||
}
|
||||
if (defined $dest_dir) {
|
||||
unlink("$dest_dir/caddy");
|
||||
symlink($0, "$dest_dir/caddy");
|
||||
}
|
||||
exit 0;
|
||||
}
|
||||
|
||||
if ($name eq 'useradd') {
|
||||
exit 0;
|
||||
}
|
||||
|
||||
if ($name eq 'semodule') {
|
||||
# A loaded module line looks like "100 caddy\tpp"; the fixture decides
|
||||
# whether this host carries a confined caddy policy.
|
||||
if (-f "$FIX/semodule-caddy") {
|
||||
print "100 caddy\tpp\n";
|
||||
}
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user