mirror of
https://github.com/webmin/webmin.git
synced 2026-09-17 11:00:42 +01:00
Work on actually creating repos
This commit is contained in:
12
package-updates/create_repo.cgi
Normal file
12
package-updates/create_repo.cgi
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Create one new repository
|
||||
|
||||
require './package-updates-lib.pl';
|
||||
&ReadParse();
|
||||
&error_setup($text{'repos_err_create'});
|
||||
|
||||
$repo = &software::create_repo_parse(\%in);
|
||||
&error($repo) if (!ref($repo));
|
||||
&software::create_package_repo($repo);
|
||||
&webmin_log("create", "repo", $repo->{'id'});
|
||||
&redirect("index.cgi?tab=repos");
|
||||
@@ -255,7 +255,11 @@ if ($has_repos) {
|
||||
}
|
||||
|
||||
# Form to add a repo
|
||||
# XXX
|
||||
print &ui_form_start("create_repo.cgi", "post");
|
||||
print &ui_table_start($text{'index_repoheader'}, undef, 2);
|
||||
print &software::create_repo_form();
|
||||
print &ui_table_end();
|
||||
print &ui_form_end([ [ undef, $text{'create'} ] ]);
|
||||
|
||||
print &ui_tabs_end_tab("tab", "repos");
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ index_reposurl=Package URL
|
||||
index_reposdisable=Disable Repositories
|
||||
index_reposenable=Enable Repositories
|
||||
index_reposdelete=Delete Repositories
|
||||
index_repoheader=New package repository options
|
||||
|
||||
update_title=Update Packages
|
||||
update_title2=Install Packages
|
||||
@@ -136,6 +137,7 @@ system_tgz=Webmin or Usermin tar.gz
|
||||
repos_err_disable=Failed to disable repositories
|
||||
repos_err_enable=Failed to enable repositories
|
||||
repos_err_delete=Failed to delete repositories
|
||||
repos_err_create=Failed to create repository
|
||||
repos_ebutton=No button clicked!
|
||||
repos_enone=None selected
|
||||
repos_title=Delete Repositories
|
||||
|
||||
@@ -270,6 +270,7 @@ yum_repo_eidclash=Repository ID is already in use
|
||||
yum_repo_ename=Missing repository name
|
||||
yum_repo_eurl=Missing or invalid repository URL
|
||||
yum_repo_egpg=GPG cert file missing or does not exist
|
||||
yum_repo_efile=Repository file already exists!
|
||||
|
||||
urpmi_name=URPMI
|
||||
urpmi_input=Package from URPMI
|
||||
|
||||
@@ -388,7 +388,8 @@ foreach my $repo (@rv) {
|
||||
$name =~ s/\s*-.*//;
|
||||
$name =~ s/\s*\$[a-z0-9]+//gi;
|
||||
$repo->{'name'} = $repo->{'id'}." (".$name.")";
|
||||
$repo->{'url'} = $repo->{'raw'}->{'baseurl'};
|
||||
$repo->{'url'} = $repo->{'raw'}->{'baseurl'} ||
|
||||
$repo->{'raw'}->{'mirrorlist'};
|
||||
$repo->{'enabled'} = defined($repo->{'raw'}->{'enabled'}) ?
|
||||
$repo->{'raw'}->{'enabled'} : 1;
|
||||
}
|
||||
@@ -418,7 +419,7 @@ return $rv;
|
||||
sub create_repo_parse
|
||||
{
|
||||
my ($in) = @_;
|
||||
my $repo = { 'raw' => { } };
|
||||
my $repo = { 'raw' => { 'enabled' => 1 } };
|
||||
|
||||
# ID must be valid and unique
|
||||
$in->{'id'} =~ /^[a-z0-9\-\_]+$/i || return $text{'yum_repo_eid'};
|
||||
@@ -448,6 +449,20 @@ return $repo;
|
||||
# Creates a new repository from the given hash (returned by create_repo_parse)
|
||||
sub create_package_repo
|
||||
{
|
||||
my ($repo) = @_;
|
||||
my $file = "$yum_repos_dir/$repo->{'id'}.repo";
|
||||
-r $file && return $text{'yum_repo_efile'};
|
||||
|
||||
&lock_file($file);
|
||||
my $lref = &read_file_lines($file);
|
||||
push(@$lref, "[$repo->{'id'}]");
|
||||
foreach my $r (keys %{$repo->{'raw'}}) {
|
||||
push(@$lref, $r."=".$repo->{'raw'}->{$r});
|
||||
}
|
||||
&flush_file_lines($file);
|
||||
&unlock_file($file);
|
||||
|
||||
return undef;
|
||||
}
|
||||
|
||||
# delete_package_repo(&repo)
|
||||
|
||||
Reference in New Issue
Block a user