RoPkg-Simba-0.8.4/0000755000076600007640000000000010506216746013460 5ustar diabloroedunetRoPkg-Simba-0.8.4/addons/0000755000076600007640000000000010506216746014730 5ustar diabloroedunetRoPkg-Simba-0.8.4/addons/web/0000755000076600007640000000000010506216746015505 5ustar diabloroedunetRoPkg-Simba-0.8.4/addons/web/templates/0000755000076600007640000000000010506216746017503 5ustar diabloroedunetRoPkg-Simba-0.8.4/addons/web/templates/mirror-modify.tmpl0000644000076600007640000000625510452445652023210 0ustar diabloroedunet
 Mirror details  " />

" />

" size="40" />

" size="40" />

" size="50" />

" size="10" />

" size="5" />

yesno" size="4" />

yesno" size="4" />

" size="40" />

" size="40" />

" size="40" />

" size="40" />

" size="40" />

" size="40" />

RoPkg-Simba-0.8.4/addons/web/templates/ex-modify.tmpl0000644000076600007640000000172210452445652022304 0ustar diabloroedunet
 Exclude details  " />

" />

" />

" size="60" />

RoPkg-Simba-0.8.4/addons/web/templates/ex-new.tmpl0000644000076600007640000000166410452445652021613 0ustar diabloroedunet
 Exclude details 

" />

" />

" />

RoPkg-Simba-0.8.4/addons/web/templates/start-page.tmpl0000644000076600007640000000134610452445651022453 0ustar diabloroedunet

Database status:

Mirrors:
Active mirrors:
Mirrors in progress:
Commands:
Excludes:
RoPkg-Simba-0.8.4/addons/web/templates/mirror-new.tmpl0000644000076600007640000000623110452445652022504 0ustar diabloroedunet
 Mirror details 

" />

" size="40" />

" size="40" />

" size="50" />

" size="10" />

" size="5" />

yesno" size="4" />

yesno" size="4" />

" size="40" />

" size="40" />

" size="40" />

" size="40" />

" size="40" />

" size="40" />

RoPkg-Simba-0.8.4/addons/web/templates/mirrors-page.tmpl0000644000076600007640000000301510452445651023006 0ustar diabloroedunet

Mirrors list:

odd even">
id Name Contact Active Running Description Operations
yesno yesno yesno "> "> delete

No mirrors found in database

RoPkg-Simba-0.8.4/addons/web/templates/header.tmpl0000644000076600007640000000314210452445652021631 0ustar diabloroedunet Simba config

Simba database manager

"The syncing tool"

RoPkg-Simba-0.8.4/addons/web/templates/ex-index.tmpl0000644000076600007640000000235410452445652022126 0ustar diabloroedunet

Excludes list:

odd even">
Mirror ID Command ID List Operations
"> "> delete

No excludes found in database.

RoPkg-Simba-0.8.4/addons/web/templates/cmd-new.tmpl0000644000076600007640000000136410452445652021737 0ustar diabloroedunet
 Command details 

" />

" size="40" />

RoPkg-Simba-0.8.4/addons/web/templates/cmd-index.tmpl0000644000076600007640000000233710452445651022255 0ustar diabloroedunet

Commands list:

odd even">
id Path Arguments Operations
"> "> delete

No commands found in database

RoPkg-Simba-0.8.4/addons/web/templates/cmd-modify.tmpl0000644000076600007640000000141010452445651022424 0ustar diabloroedunet
 Command details  " />

" />

" size="40" />

RoPkg-Simba-0.8.4/addons/web/simba-css/0000755000076600007640000000000010506216746017366 5ustar diabloroedunetRoPkg-Simba-0.8.4/addons/web/simba-css/base.css0000644000076600007640000000303510452445651021012 0ustar diabloroedunet* { padding: 0; margin: 0; } p,dl { margin: 1.618ex 0; } dd, li { margin-left: 1em; } h2, h3, h4, h5, h6 { margin-top: 1em; } input, select, textarea { padding: 1px 0; } h1 { margin: 1em 0 1em .5em; color: #036; } body { padding: 8px; background-color: #fff; color: #000; font-family: "Trebuchet MS", Verdana, "Bitstream Vera Sans", sans-serif; } * html body { font-size: 81.25%; } img { border: none; } acronym { cursor: help; } a:link { color: #036; } a:visited { color: #666; } a:hover { color: #f60; } a:active, a:focus { color: #f00; } a:hover span.accesskey { text-decoration: underline; } h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { text-decoration: none; } .hide { overflow: hidden; visibility: hidden; display: none; clear: none; } .error, span.required { color: red; } .right { text-align: right; } .center { text-align: center; margin-left: auto; margin-right: auto; } .top { vertical-align: top; } .grow { width: 100%; margin-right: 0; margin-left: 0; padding-right: 0; padding-left: 0; } strong, .strong { font-size: 110%; font-weight: bolder; font-style: normal; } em { font-size: 100%; font-weight: bolder; font-style: normal; } .em { border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 1ex 2em; line-height: 140%; } .small { font-size: .85em; } .fixme { padding: 1em; color: #900; background-color: yellow; } img.inline { border: none; margin-bottom: 1ex; display: inline; } .inside { list-style-position: inside; } .fleft { float: left; margin-right: 1em; } .fright { float: right; margin-left: 1em; } RoPkg-Simba-0.8.4/addons/web/simba-css/style.css0000644000076600007640000000011010452445651021227 0ustar diabloroedunet@import url(base.css); @import url(layout.css); @import url(menus.css); RoPkg-Simba-0.8.4/addons/web/simba-css/menu.css0000644000076600007640000000027010452445651021042 0ustar diabloroedunetdiv.left-menu { float: left; padding-right: 1em; margin-top: 1ex; } div.left-menu a { text-decoration: none; } div.left-menu ul li { margin-top: 1ex; list-style: none; } RoPkg-Simba-0.8.4/addons/web/simba-css/sheet.css0000644000076600007640000000575010452445651021216 0ustar diabloroedunettable.sheet { border: 1px solid #ccc; background-color: #e6e6e6; margin: 4px 0; width: 100%; } table.sheet th, table.sheet thead td { text-align: left; font-weight: normal; padding: 2px 1ex; border: 1px solid; color: #000; background-color: #e6e6e6; border-color: #ccc #666 #666 #ccc; white-space: nowrap; cursor: default; } table.sheet th:active, table.sheet thead td:active { background-color: #f6f6f6; border-color: #666 #ccc #ccc #666; } table.sheet thead td[_sortType=None]:active { background-color: #e6e6e6; border-color: #ccc #999 #999 #ccc; } table.sheet .sort-arrow { width: 11px; height: 11px; background-position: center center; background-repeat: no-repeat; margin: 0 2px; float: right; margin-top: -15px; } table.sheet .sort-arrow.descending { background-image: url(http://ftp.iasi.roedu.net/gfx/down.png); } table.sheet .sort-arrow.ascending { background-image: url(http://ftp.iasi.roedu.net/gfx/up.png); } table.sheet tbody tr td span { display: none; } table.sheet tfoot tr td, table.sheet tbody tr td { border-bottom: 1px solid #fff; } table.sheet tfoot tr:hover td, table.sheet tbody tr:hover td { border-bottom-color: #ff9900; } table.sheet tbody tr.odd { color: inherit; background-color: #fff; } table.sheet tbody tr.even { color: inherit; background-color: #f6f6f6; } table.sheet tbody tr.in-progress td a, table.sheet tbody tr.in-progress td { color: blue; } table.sheet tfoot td, table.sheet tbody td { padding: 2px 4px; vertical-align: top; text-align: left; } table.sheet tbody td.idx, table.sheet td.action, table.sheet td.minimal, table.sheet td.url, table.sheet tfoot td.speed, table.sheet tfoot td.size, table.sheet tfoot td.update, table.sheet tfoot td.duration, table.sheet tbody td.speed, table.sheet tbody td.size, table.sheet tbody td.update, table.sheet tbody td.duration { white-space: nowrap; width: 1em; padding: 2px .4em; } table.sheet tfoot td.speed, table.sheet tfoot td.size, table.sheet tfoot td.update, table.sheet tfoot td.duration, table.sheet tbody td.idx, table.sheet tbody td.number, table.sheet tbody td.speed, table.sheet tbody td.size { text-align: right; } table.sheet td.action, table.sheet td.center, table.sheet td.updated, table.sheet td.duration, table.sheet td.url { text-align: center; } table.sheet td.log { text-align: center; padding: 0; margin: 0; } table.sheet>tbody>tr>td:first-child { padding-left: 0px; } table.sheet tbody tr.error td, table.sheet tbody tr.error td a { color: #c00; } table.search-table tbody tr td, table.search-table { border-style: none; background-color: white; } table.sheet td.search-table-title { text-align: center; vertical-align: middle; } table.sheet tbody td.search-table-label , table.sheet tbody td.search-table-field { width: 50%; vertical-align: middle; } table.sheet tbody td.search-table-label { text-align: right; } table.sheet tbody td.search-table-field { text-align: left; } /* table.sheet thead td { padding-right: 12px; } */ RoPkg-Simba-0.8.4/addons/web/simba-css/menus.css0000644000076600007640000000036010452445651021225 0ustar diabloroedunetdiv.vhosts-menu { float: left; border: 1px solid #ccc; background-color: #e6e6e6; margin: 4px 0; width: 15%; clear: left; } div.vhosts-menu ul li a, div.vhosts-menu ul li { list-style-type: none; text-decoration: none; } RoPkg-Simba-0.8.4/addons/web/simba-css/forms.css0000644000076600007640000000233210452445651021225 0ustar diabloroedunetbody { color: black; background-color: white; } label { display: block; float: left; text-align: right; margin-right: 1em; width: 25%; } p.checkbox label, p.radio label { display: inline; float: none; font-size: smaller; } p.checkbox, p.radio { padding-left: 26%; } input[type="text"] { border: 1px solid #00c; padding: 1px 2px; background-color: #f0f0f0; color: #000; } input[type="password"] { border: 1px solid #0c0; padding: 1px 2px; background-color: #f0f0f0; color: #f00; } input[type="button"], input[type="reset"], input[type="submit"] { border: 1px outset #006; padding: 1px 1em; background-color: #eee; color: #005; } input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover { border-style: inset; } input[type="image"] { border: 1px dotted #006; padding: .5ex 1ex; } input[type="image"]:hover { border-style: solid; } input[type="submit"] { margin-left: 40em; margin-bottom: 2ex; } button { margin: 0; padding: 2px; border: 1px solid #fff; color: #060; background-color: #fff; } button:hover { border-color: #00c; } textarea { font-family: sans-serif; white-space: pre; border: 1px solid #ccc; padding: 2px; background-color: #f0f0f0; color: #111; } RoPkg-Simba-0.8.4/addons/web/simba-css/content.css0000644000076600007640000000012010452445651021542 0ustar diabloroedunetdiv.content { padding-left: 15%; } div.content table.sheet { width: 30%; } RoPkg-Simba-0.8.4/addons/web/simba-img/0000755000076600007640000000000010506216746017352 5ustar diabloroedunetRoPkg-Simba-0.8.4/addons/web/simba-img/comment.gif0000644000076600007640000000031410452445651021500 0ustar diabloroedunetGIF89aοJGc1wB)c{!,I!di(ʤ%hHnQrȉ&M91"6R,[*T4dё9<8ySEb!s=$00dQNS%CCp?n8҄P (YiE1P1m Ez gZt#[$\]R:[nYUVйCLX` E4TN:\Y'։u|p  EYjy#A`G@Vr4""xT@f-SE!#HaXC^DBZC0I'Py9 B`$FhĎKQQׄDPc4]h T&a6 Y$BF*S.u)`O)2 @[D"H # 䡦Ёlx h;T[A_rh0ЛT=q#еv @PP@mL6Im`Uq#MF 4@@puIR20>UJ@A+$ !#3W00&CpI8UU\d D(Zv)!_M0s 4@EՀ*V@;RoPkg-Simba-0.8.4/addons/web/simba-img/buttons/z13-16x16.gif0000644000076600007640000000203110452445651022732 0ustar diabloroedunetGIF89aƽR{{cJ{)sc!sckZcRsR{sccRZJcRƽkckZ)sc{ksckZcscB{s9{s))ssc{ks{sƽcR1{sRRJ9!{kckJƽsk{s{ƽƵƥƜΥƜƌΔ{ք{Ƅ{sckcccRJZRBB91)1))!!!Created with The GIMP!,@ &O @t (ɐ*1rI%L/'N#ƌ#2J\ȑ$J02b$)@r "  " T!7(A$FSEL11@D "* ZѢ%I%J#(Rĥu B)S$H HL鐃%DT(9&4Q($016jr䄄6PDD#((pI+PC^D ;RoPkg-Simba-0.8.4/addons/web/simba-img/buttons/link-16x16.png0000644000076600007640000000071410452445651023277 0ustar diabloroedunetPNG  IHDRagAMA abKGDx3+s pHYs  ~tIME 3,IIDATxӱjTAn !v[("j$E W$·V Le烤0EJ+I>!EHLbv,2{:";=s>nK9Zhc=v6?wq PO{1*1:j>{`U-N7÷uxvkU[mmsHkx.TMj:0==LsxcUހ/=q`ZBbgs )m?Ԁg㟸Y)Xf..tΣDl¹A]۩((9~9+~$pIENDB`RoPkg-Simba-0.8.4/addons/web/simba-img/right.gif0000644000076600007640000000010710452445651021153 0ustar diabloroedunetGIF89a! ,pˑ؃LFz~}8U*E;RoPkg-Simba-0.8.4/addons/web/simba-img/left.gif0000644000076600007640000000011110452445651020763 0ustar diabloroedunetGIF89a! , ȧЃ1j'҅}9VS;RoPkg-Simba-0.8.4/addons/web/simba-img/delete.gif0000644000076600007640000000102510452445651021300 0ustar diabloroedunetGIF89a)))5"%;-0<<5D2ICPP]qyK^Pbjw' -&&(* .123:3<<:''((()*,())()))/ 0 2!E,rE,E7A3#)A-5.>0& 19"8C!4:+DB A'? *6 '/etc/simba/templates/cgi/start-page.tmpl', loop_context_vars => 1, die_on_bad_params => 0); $tmpl->param(MirrorsNo => $simba->MirrorsNo); $tmpl->param(CommandsNo => $simba->CommandsNo); $tmpl->param(ExcludesNo => $simba->ExcludeNo); $tmpl->param(MirrorsActive => $simba->MirrorsNo({Active => 1})); $tmpl->param(MirrorsInProgress => $simba->MirrorsNo({InProgress => 1})); print header, $tmpl->output,$/; } sub sh_excludes_page { $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/ex-index.tmpl', loop_context_vars => 1, die_on_bad_params => 0); $tmpl->param(ExcludesNo => $simba->ExcludeNo); if ( $simba->ExcludeNo <= 0 ) { print header, $tmpl->output, $/; return; } { my @exs; my @loop_data; @exs = $simba->Excludes(); foreach(@exs) { my $ex = $_; my %e_data; $e_data{id} = $ex->id; $e_data{MirrorID} = $ex->MirrorID; $e_data{CommandID} = $ex->CommandID; $e_data{ExList} = $ex->ExList; push(@loop_data, \%e_data); } $tmpl->param(Excludes => \@loop_data); } print header, $tmpl->output,$/; } sub sh_commands_page { $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/cmd-index.tmpl', loop_context_vars => 1, die_on_bad_params => 0); $tmpl->param(CommandsNo => $simba->CommandsNo); if ( $simba->CommandsNo <= 0 ) { print header, $tmpl->output, $/; return; } { my @cmds; my @loop_data; @cmds = $simba->Commands(); foreach(@cmds) { my $cmd = $_; my %c_data; $c_data{id} = $cmd->id; $c_data{Path} = $cmd->Path; $c_data{Args} = $cmd->Args; push(@loop_data, \%c_data); } $tmpl->param(Commands => \@loop_data); } print header, $tmpl->output,$/; } sub sh_mirrors_page { $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/mirrors-page.tmpl', loop_context_vars => 1, die_on_bad_params => 0); $tmpl->param(MirrorsNo => $simba->MirrorsNo); $tmpl->param(CommandsNo => $simba->CommandsNo); $tmpl->param(ExcludesNo => $simba->ExcludeNo); $tmpl->param(MirrorsActive => $simba->MirrorsNo({Active => 1})); $tmpl->param(MirrorsInProgress => $simba->MirrorsNo({InProgress => 1})); if ( $simba->MirrorsNo <= 0 ) { print header, $tmpl->output, $/; return; } { my @mirrors; my @loop_data; eval { @mirrors = $simba->Mirrors(undef, [qw(Name)]); }; if (Exception::Class->caught('DB::NoResults')) { @mirrors = (); } foreach(@mirrors) { my $mirror = $_; my %m_data; foreach($mirror->GetMethods) { next if ( $_ eq 'StdOut' ); next if ( $_ eq 'StdErr' ); $m_data{$_} = $mirror->$_; } push(@loop_data, \%m_data); } $tmpl->param(Mirrors => \@loop_data); } print header, $tmpl->output,$/; } sub modify_ex { my $exid = shift; my $ex; $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/ex-modify.tmpl', loop_context_vars => 1, die_on_bad_params => 0); ($ex) = $simba->Excludes({ id => $exid }); $tmpl->param(id => $ex->id); $tmpl->param(MirrorID => $ex->MirrorID); $tmpl->param(CommandID => $ex->CommandID); $tmpl->param(ExList => $ex->ExList); print header, $tmpl->output, $/; } sub modify_cmd { my $cmdid = shift; my $cmd; $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/cmd-modify.tmpl', loop_context_vars => 1, die_on_bad_params => 0); ($cmd) = $simba->Commands({ id => $cmdid }); $tmpl->param(id => $cmd->id); $tmpl->param(Path => $cmd->Path); $tmpl->param(Args => $cmd->Args); print header, $tmpl->output, $/; } sub modify_mirror { my $mirrorid = shift; my $mirror; $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/mirror-modify.tmpl', loop_context_vars => 1, die_on_bad_params => 0); $mirror = new RoPkg::Simba::Mirror( dbo_method => $simba->dbo_method, dbo => $simba->dbo, id => $mirrorid ); eval { $mirror->Load(); }; if ( Exception::Class->caught('DB::NoResults') ) { print header, '

Sorry. No such mirror in database

',$/; return; } foreach($mirror->GetMethods) { $tmpl->param($_ => $mirror->$_); } print header, $tmpl->output, $/; } sub update_exclude { my $ex; ($ex) = $simba->Excludes({id => param('e_id')}); $ex->MirrorID(param('e_MirrorID')); $ex->CommandID(param('e_CommandID')); $ex->ExList(param('e_ExList')); $ex->Update(); } sub update_command { my $cmd; ($cmd) = $simba->Commands({id => param('c_id')}); $cmd->Path(param('c_Path')); $cmd->Args(param('c_Args')); $cmd->Update(); } sub update_mirror { my $mirror; $mirror = new RoPkg::Simba::Mirror( dbo_method => $simba->dbo_method, dbo => $simba->dbo, id => param('m_id') ); eval { $mirror->Load(); }; if ( Exception::Class->caught('DB::NoResults') ) { print header, '

Sorry. No such mirror in database

',$/; return; } foreach($mirror->GetMethods) { $mirror->$_( param('m_' . $_)) if (param('m_' . $_)); } if ( $mirror->InProgress !~ m/^(0|1)$/ ) { if ( $mirror->InProgress =~ m/^yes$/i ) { $mirror->InProgress(1); } else { $mirror->InProgress(0); } } if ( $mirror->Active !~ m/^(0|1)$/ ) { if ( $mirror->Active =~ m/^yes$/i ) { $mirror->Active(1); } else { $mirror->Active(0); } } $mirror->Update(); } sub display_add_exclude { $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/ex-new.tmpl', loop_context_vars => 1, die_on_bad_params => 0); print header, $tmpl->output,$/; } sub display_add_command { $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/cmd-new.tmpl', loop_context_vars => 1, die_on_bad_params => 0); print header, $tmpl->output,$/; } sub display_add_mirror { $tmpl = new HTML::Template(filename => '/etc/simba/templates/cgi/mirror-new.tmpl', loop_context_vars => 1, die_on_bad_params => 0); $tmpl->param(Active => 'yes', SyncMethod => 'rsync', Contact => '-'); print header, $tmpl->output,$/; } sub add_new_exclude { my $ex; $ex = new RoPkg::Simba::Exclude(dbo => $simba->dbo, dbo_method => $simba->dbo_method); $ex->CommandID(param('e_CommandID')); $ex->MirrorID(param('e_MirrorID')); $ex->ExList(param('e_ExList')); $ex->Add(); } sub add_new_command { my $cmd; $cmd = new RoPkg::Simba::Command(dbo => $simba->dbo, dbo_method => $simba->dbo_method); $cmd->Args(param('c_Args')); $cmd->Path(param('c_Path')); $cmd->Add(); } sub add_new_mirror { my $mirror; $mirror = new RoPkg::Simba::Mirror(dbo => $simba->dbo, dbo_method => $simba->dbo_method); foreach($mirror->GetMethods) { $mirror->$_( param('m_' . $_)) if (param('m_' . $_)); } if ( $mirror->InProgress !~ m/^(0|1)$/ ) { if ( $mirror->InProgress =~ m/^yes$/i ) { $mirror->InProgress(1); } else { $mirror->InProgress(0); } } if ( $mirror->Active !~ m/^(0|1)$/ ) { if ( $mirror->Active =~ m/^yes$/i ) { $mirror->Active(1); } else { $mirror->Active(0); } } $mirror->Add(); } sub delete_exclude { my $ex; eval { ($ex) = $simba->Excludes({id => param('id')}); $ex->Delete(); }; if ( Exception::Class->caught('DB::NoResults') ) { return; } return; } sub delete_command { my $cmd; eval { ($cmd) = $simba->Commands({id => param('id')}); $cmd->Delete(); }; if ( Exception::Class->caught('DB::NoResults') ) { return; } return; } sub delete_mirror { my ($mirror, $exclude); $mirror = new RoPkg::Simba::Mirror( dbo => $simba->dbo, dbo_method => $simba->dbo_method, id => param('id') ); eval { $mirror->Load(); }; if (Exception::Class->caught('DB::NoResults')) { return; } else { $mirror->Delete(); } $exclude = new RoPkg::Simba::Exclude( MirrorID => $mirror->id, CommandID => $mirror->CommandID, dbo => $simba->dbo, dbo_method => $simba->dbo_method ); eval { $exclude->Load(); }; if (Exception::Class->caught('DB::NoResults')) { return; } } sub main { eval { $simba = new RoPkg::Simba(cfgFile => '/etc/simba/simba.cfg'); }; if (ref($EVAL_ERROR)) { print header,'

Error: ',$EVAL_ERROR->error,'

',$RS; return; } if ( request_method =~ m/^post$/i ) { if (param('action')) { if (param('action') eq 'update_mirror') { update_mirror(); print redirect('simba.cgi?display_page=mirrors'); return; } elsif ( param('action') eq 'update_command' ) { update_command(); print redirect('simba.cgi?display_page=commands'); return; } elsif ( param('action') eq 'update_exclude' ) { update_exclude(); print redirect('simba.cgi?display_page=excludes'); return; } elsif ( param('action') eq 'add_new_mirror' ) { add_new_mirror(); print redirect('simba.cgi?display_page=mirrors'); return; } elsif ( param('action') eq 'add_new_command') { add_new_command(); print redirect('simba.cgi?display_page=commands'); return; } elsif ( param('action') eq 'add_new_exclude') { add_new_exclude(); print redirect('simba.cgi?display_page=excludes'); return; } } } if (param('action')) { if (param('action') eq 'mod_mirror') { if (! param('id')) { print header,'

Error. No mirror id specified

',$/; return; } modify_mirror(param('id')); return; } elsif ( param('action') eq 'add_new_mirror') { display_add_mirror(); return; } elsif ( param('action') eq 'add_new_cmd') { display_add_command(); return; } elsif ( param('action') eq 'add_new_ex') { display_add_exclude(); return; } elsif ( param('action') eq 'drop_mirror') { delete_mirror(); print redirect('simba.cgi?display_page=mirrors'); return; } elsif ( param('action') eq 'mod_cmd' ) { modify_cmd(param('id')); return; } elsif ( param('action') eq 'mod_ex' ) { modify_ex(param('id')); return; } elsif ( param('action') eq 'drop_cmd') { delete_command(); print redirect('simba.cgi?display_page=commands'); return; } elsif ( param('action') eq 'drop_ex') { delete_exclude(); print redirect('simba.cgi?display_page=excludes'); return; } } if ( !param('display_page') ) { sh_index(); return; } if (param('display_page') eq 'mirrors') { sh_mirrors_page(); } elsif ( param('display_page') eq 'commands' ) { sh_commands_page(); } elsif ( param('display_page') eq 'excludes' ) { sh_excludes_page(); } else { sh_index(); } } main(); RoPkg-Simba-0.8.4/addons/simba.mysql0000644000076600007640000000424510452445651017116 0ustar diabloroedunet-- MySQL dump 10.10 -- -- Host: localhost Database: mirrors_db -- ------------------------------------------------------ -- Server version 5.0.18-Debian_8-log -- -- Table structure for table `Commands` -- DROP TABLE IF EXISTS `Commands`; CREATE TABLE `Commands` ( `id` int(11) unsigned NOT NULL auto_increment, `Path` varchar(254) NOT NULL default '', `Args` varchar(254) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM; -- -- Table structure for table `Excludes` -- DROP TABLE IF EXISTS `Excludes`; CREATE TABLE `Excludes` ( `id` int(11) NOT NULL auto_increment, `MirrorID` int(11) NOT NULL default '0', `CommandID` int(11) NOT NULL default '0', `ExList` mediumtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM; -- -- Table structure for table `Mirrors` -- DROP TABLE IF EXISTS `Mirrors`; CREATE TABLE `Mirrors` ( `id` int(10) unsigned NOT NULL auto_increment, `Name` varchar(64) NOT NULL default '', `LogoURL` varchar(128) default NULL, `Description` longtext, `HomeSite` varchar(128) NOT NULL default '', `LocalDir` varchar(254) NOT NULL default '', `Size` bigint(20) NOT NULL default '0', `SyncMethod` varchar(32) NOT NULL default '', `CommandID` int(11) NOT NULL default '0', `LastErrorCode` int(11) NOT NULL default '0', `Active` tinyint(4) NOT NULL default '0', `InProgress` tinyint(4) NOT NULL default '0', `SyncSource` varchar(127) NOT NULL default '', `SyncSourceUser` varchar(127) default '', `SyncSourcePass` varchar(127) default '', `SyncSourceModule` varchar(127) NOT NULL default '', `Contact` varchar(127) NOT NULL default '', `LastUpdated` int(11) NOT NULL default '0', `LastUpdateDuration` int(11) NOT NULL default '0', `LastUpdateSpeed` int(11) NOT NULL default '0', `LastUpdateFilesNo` int(11) NOT NULL default '0', `LastUpdateBytes` int(11) NOT NULL default '0', `LocalURL` varchar(127) NOT NULL default '', `StdOut` longblob, `StdErr` longblob, PRIMARY KEY (`id`), KEY `idx_by_name` (`Name`), KEY `idx_by_size` (`Size`), KEY `idx_by_sync_method` (`SyncMethod`), KEY `idx_by_f_active` (`Active`), KEY `idx_by_f_syncing` (`InProgress`), KEY `idx_by_updated` (`LastUpdated`) ) ENGINE=MyISAM; RoPkg-Simba-0.8.4/addons/metalink.tmpl0000644000076600007640000000205710506212545017427 0ustar diabloroedunet " type="static" pubdate="" generator="Simba - http://simba.packages.ro" refreshdate=""> updated files , mirror, mirroring, updates 1 "> Linux-x86 RoPkg-Simba-0.8.4/inc/0000755000076600007640000000000010506216746014231 5ustar diabloroedunetRoPkg-Simba-0.8.4/inc/ExtUtils/0000755000076600007640000000000010506216746016012 5ustar diabloroedunetRoPkg-Simba-0.8.4/inc/ExtUtils/AutoInstall.pm0000644000076600007640000005666510452445652020631 0ustar diabloroedunet# $File: //member/autrijus/ExtUtils-AutoInstall/AutoInstall.pm $ # $Revision: #11 $ $Change: 1502 $ $DateTime: 2002/10/17 20:21:45 $ package ExtUtils::AutoInstall; $ExtUtils::AutoInstall::VERSION = '0.42'; use strict; use Cwd; use ExtUtils::MakeMaker (); =head1 NAME ExtUtils::AutoInstall - Automatic install of dependencies via CPAN =head1 VERSION This document describes version 0.42 of B, released October 18, 2002. =head1 SYNOPSIS In F: # ExtUtils::AutoInstall Bootstrap Code, version 4. BEGIN{my$p='ExtUtils::AutoInstall';my$v=.30;eval"use $p $v;1"or ($ENV{PERL_EXTUTILS_AUTOINSTALL}!~/--(?:default|skip|testonly)/ and(-t STDIN)or eval"use ExtUtils::MakeMaker;WriteMakefile('PR' .'EREQ_PM'=>{'$p',$v});1"and exit)and print"==> $p $v needed. " ."Install it from CPAN? [Y/n] "and!~/^n/i and print"***" ." Fetching $p\n"and do{eval{require CPANPLUS;CPANPLUS::install $p};eval"use $p $v;1"or eval{require CPAN;CPAN::install$p};eval "use $p $v;1"or die"Please install $p $v manually first...\n"}} # pre-install handler; takes $module_name and $version sub MY::preinstall { return 1; } # return false to skip install # post-install handler; takes $module_name, $version, and $success sub MY::postinstall { ... } # the above handlers must be declared before the 'use' statement use ExtUtils::AutoInstall ( -version => '0.40', # required AutoInstall version # usually 0.30 is sufficient -config => { make_args => '--hello' # option(s) for CPAN::Config force => 1, # pseudo-option to force install }, -core => [ # core modules; may also be 'all' Package0 => '', # any version would do ], 'Feature1' => [ # do we want to install this feature by default? -default => ( system('feature1 --version') == 0 ), Package1 => '0.01', ], 'Feature2' => [ # associate tests to be disabled if this feature is missing -tests => [ ], # associate tests to be disabled if this feature is present -skiptests => [ ], Package2 => '0.02', ], 'Feature3' => { # hash reference works, too # force installation even if tests fail Package3 => '0.03', } ); WriteMakefile( AUTHOR => 'Joe Hacker (joe@hacker.org)', ABSTRACT => 'Perl Interface to Joe Hacker', NAME => 'Joe::Hacker', VERSION_FROM => 'Hacker.pm', DISTNAME => 'Joe-Hacker', ); Invoking the resulting F: % perl Makefile.PL # interactive behaviour % perl Makefile.PL --defaultdeps # accept default value on prompts % perl Makefile.PL --checkdeps # check only, no Makefile produced % perl Makefile.PL --skipdeps # ignores all dependencies % perl Makefile.PL --testonly # don't write installation targets Note that the trailing 'deps' of arguments may be omitted, too. Using F (or F): % make [all|test|install] # install dependencies first % make checkdeps # same as the --checkdeps above % make installdeps # install dependencies only =head1 DESCRIPTION B lets module writers to specify a more sophisticated form of dependency information than the C option offered by B. =head2 Prerequisites and Features Prerequisites are grouped into B, and the user could choose yes/no on each one's dependencies; the module writer may also supply a boolean value via C<-default> to specify the default choice. The B marked by the name C<-core> will double-check with the user, if the user chooses not to install the modules that belongs to it. This differs with the pre-0.26 'silent install' behaviour. Starting from version 0.27, if C<-core> is set to the string C (case-insensitive), every features will be considered mandatory. The dependencies are expressed as pairs of C => C inside an a array reference. If the order does not matter, and there are no C<-default>, C<-tests> or C<-skiptests> directives for that feature, you may also use a hash reference. =head2 The Installation Process Once B has determined which module(s) are needed, it checks whether it's running under the B shell and should therefore let B handle the dependency. Finally, the C is overridden to perform some additional checks, as well as skips tests associated with disabled features by the C<-tests> option. The actual installation happens at the end of the C target; both C and C will trigger the installation of required modules. If it's not running under B, the installer will probe for an active connection by trying to resolve the domain C, and check for the user's permission to use B. If all went well, a separate B instance is created to install the required modules. If you have the B package installed in your system, it is preferred by default over B; it also accepts some extra options (e.g. C<-target =E 'skiptest', -skiptest =E 1> to skip testing). All modules scheduled to install will be deleted from C<%INC> first, so B will check the newly installed modules. Additionally, you could use the C target to install the modules, and the C target to check dependencies without actually installing them; the C command has an equivalent effect. =head2 User-Defined Hooks Starting from version 0.40, user-defined I and I hooks are available via C and C subroutines. Note that since B performs installation at the time of C (i.e. before perl parses the remainder of F), you have to declare those two handlers I the C statement for them to take effect. If the user did not choose to install a module or it already exists on the system, neither handlers are invoked. Both handlers are invoked exactly once for each module's attempted installation. C takes two arguments, C<$module_name> and C<$version>; if it returns a false value, installation for that module will be skipped, and C won't be called at all. C takes three arguments, C<$module_name>, C<$version> and C<$success>. The last one denotes whether the installation succeeded or not: C<1> means installation completed successfully, C<0> means failure during install, and C means that the installation was not attempted at all, possibly due to connection problems, or that module does not exist on CPAN at all. =head1 CAVEATS B will add C to your B flags if your effective uid is 0 (root), unless you explicitly disable it by setting B's C configuration option (or the C option of B) to include C. This I cause dependency problems if you are using a fine-tuned directory structure for your site. Please consult L for an explanation in detail. If either B or B is available, they will be used to compare the required version with the existing module's version and the CPAN module's. Otherwise it silently falls back to use I. This may cause inconsistent behaviours in pathetic situations. B is not happy with this module, since it prohibits competing C functions. Patches welcome. =head1 NOTES Since this module is needed before writing F, it makes little use as a CPAN module; hence each distribution must include it in full. The only alternative I'm aware of, namely prompting in F to force user install it (cf. the B