MAJOR=4
MINOR=40
DEVNAME=tty40
      ˆl–Ðz¾”Ëm
q@=q¦nõ1hßÃ4ÂÆ      pip
  	   ˆÄÃ0ÂÆ  	   ˆÄÃ0ÂÆ      !ˆÄÃ0a–Ðz¾””ÔD¨ 	ÅÝÁ5q¶ÔÅ£Ç  	   #ˆÅÄ0¾Ç  
   %ˆƒ‚÷É¾Ç Â    %<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Index of /anon_sym/anon/usr/lib/modules/5.14.0-687.29.1.el9_8.x86_64/source/arch/powerpc/boot</title>
 </head>
 <body>
<h1>Index of /anon_sym/anon/usr/lib/modules/5.14.0-687.29.1.el9_8.x86_64/source/arch/powerpc/boot</h1>
  <table>
   <tr><th valign="top">&nbsp;</th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/anon_sym/anon/usr/lib/modules/5.14.0-687.29.1.el9_8.x86_64/source/arch/powerpc/">Parent Directory</a>       </td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="Makefile">Makefile</a>               </td><td align="right">2026-08-01 06:03  </td><td align="right"> 19K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="dts/">dts/</a>                   </td><td align="right">2026-08-06 05:26  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr>
</table>
</body></html>
  "   'ˆl–Ðz¾”Jj"TÒ�zàœ¸”Å£Åƒd=¿È è    '#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/rescan_user_dovecot_fts         Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

package scripts::rescan_user_dovecot_fts;

use strict;
use warnings;

use Try::Tiny;

use Cpanel::AcctUtils::Account ();
use Cpanel::Dovecot::Solr      ();
use Whostmgr::Email::Action    ();

use Getopt::Long ();
use Pod::Usage   ();

=encoding utf-8

=head1 NAME

scripts::rescan_user_dovecot_fts

=head1 SYNOPSIS

    rescan_user_dovecot_fts ( --user <username> | --help )

This script will call a dovecot FTS (full text search) rescan for each mailbox on a specified account
if the 'cpanel-dovecot-solr' RPM is installed. If not, the script informs that the RPM isn't installed
and returns.

=cut

__PACKAGE__->command_line(@ARGV) unless caller();

sub command_line {
    my ( $class, @args ) = @_;

    die "This must run as root!\n" if $>;

    my ( $user, $help );

    if (
        !Getopt::Long::GetOptionsFromArray(
            \@args,
            'user=s' => \$user,
            help     => \$help,
        )
        || $help
    ) {
        print _help();
        return;
    }

    if ( !$user ) {
        warn "You must specify a username!\n";
        print _help();
        return;
    }
    elsif ( !Cpanel::AcctUtils::Account::accountexists($user) ) {
        warn "You do not have a user named '$user'.\n";
        print _help();
        return;
    }

    if ( !Cpanel::Dovecot::Solr::is_installed() ) {
        warn "The 'cpanel-dovecot-solr' package is not installed. Full text search rescan not possible\n";
        return;
    }

    my $script = $class->new();

    if ( $script->process_user($user) ) {
        local $@;
        require Cpanel::ServerTasks;
        eval { Cpanel::ServerTasks::schedule_task( ['DovecotTasks'], 10, 'fts_rescan_mailbox' ); };
        warn $@ if $@;

    }

    return;
}

sub _help {
    my $msg = shift;

    my $val;
    open my $wfh, '>', \$val or die "Failed to open to a scalar: $!";

    Pod::Usage::pod2usage(
        -exitval   => 'NOEXIT',
        -message   => $msg,
        -verbose   => 1,
        -noperldoc => 1,
        -output    => $wfh,
    );

    return $val;

}

sub process_user {
    my ( $self, $user ) = @_;

    print "Rescanning mailboxes for full text search indexing for '$user'...";

    my $count           = 0;
    my $rescanned_count = Whostmgr::Email::Action::do_w