mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 08:40:24 +00:00
Add UI to upload a new version
This commit is contained in:
55
minecraft/add_version.cgi
Executable file
55
minecraft/add_version.cgi
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Upload or download a new JAR
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require './minecraft-lib.pl';
|
||||
our (%in, %text, %config);
|
||||
&error_setup($text{'versions_err'});
|
||||
&ReadParseMime();
|
||||
|
||||
# Get the file
|
||||
my $temp = &transname();
|
||||
my $origfile;
|
||||
if ($in{'mode'} == 0) {
|
||||
# Download the file
|
||||
$in{'url'} || &error($text{'versions_eurl'});
|
||||
my ($host, $port, $page, $ssl) = &parse_http_url($in{'url'});
|
||||
$host || &error($text{'versions_eurl2'});
|
||||
my $err;
|
||||
&http_download($host, $port, $page, $temp, \$err, undef, $ssl);
|
||||
$err && &error($err);
|
||||
$origfile = $page;
|
||||
}
|
||||
else {
|
||||
# Use uploaded file
|
||||
$in{'jar'} || &error($text{'versions_ejar'});
|
||||
$in{'jar_filename'} || &error($text{'versions_ejar2'});
|
||||
my $fh = "JAR";
|
||||
&open_tempfile($fh, ">$temp", 0, 1);
|
||||
&print_tempfile($fh, $in{'jar'});
|
||||
&close_tempfile($fh);
|
||||
$origfile = $in{'jar_filename'};
|
||||
}
|
||||
|
||||
# Work out the filename to upload as
|
||||
my $dir = $config{'minecraft_dir'};
|
||||
my $ver;
|
||||
my $dest;
|
||||
if ($in{'newver_def'}) {
|
||||
$origfile =~ s/^.*[\/\\]//;
|
||||
$origfile =~ /([0-9\.]+)\.jar$/ || &error($text{'versions_ever'});
|
||||
$ver = $1;
|
||||
$dest = $dir."/".$origfile;
|
||||
}
|
||||
else {
|
||||
$in{'newver'} =~ /^[0-9\.]+$/ || &error($text{'versions_enewver'});
|
||||
$ver = $in{'newver'};
|
||||
$dest = $dir."/"."minecraft_server.$in{'newver'}.jar";
|
||||
}
|
||||
|
||||
# Check for a clash, and write the file
|
||||
-r $dest && &error($text{'versions_eclash'});
|
||||
©_source_dest($temp, $dest);
|
||||
&webmin_log("addversion", undef, $ver);
|
||||
&redirect("list_versions.cgi");
|
||||
0
minecraft/change_version.cgi
Normal file → Executable file
0
minecraft/change_version.cgi
Normal file → Executable file
@@ -372,3 +372,11 @@ versions_newver=Server version
|
||||
versions_newsame=Work out from filename
|
||||
versions_all=Install Version
|
||||
versions_echange=Selected version does not exist
|
||||
versions_err=Failed to add new version
|
||||
versions_eurl=Missing URL to download from
|
||||
versions_eurl2=URL is not valid
|
||||
versions_ejar=No JAR file uploaded
|
||||
versions_ejar2=JAR file does not have a filename
|
||||
versions_ever=Could not work out version from JAR filename
|
||||
versions_enewver=Version must be numeric
|
||||
versions_eclash=A server with the same filename already exists!
|
||||
|
||||
0
minecraft/list_versions.cgi
Normal file → Executable file
0
minecraft/list_versions.cgi
Normal file → Executable file
@@ -1196,7 +1196,7 @@ my @rv;
|
||||
foreach my $f (sort { $a cmp $b } @files) {
|
||||
my $ver = { 'path' => $f };
|
||||
$ver->{'file'} = $f =~ /^\Q$dir\E\/(.*)/ ? $1 : $f;
|
||||
$ver->{'ver'} = $f =~ /([0-9\.]+)\.jar$/ ? $1 : "Unknown";
|
||||
$ver->{'ver'} = $f =~ /([0-9][0-9\.]+)\.jar$/ ? $1 : "Unknown";
|
||||
$ver->{'desc'} = $ver->{'ver'};
|
||||
push(@rv, $ver);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user