feat: add automatic git pull on homepage visit with rate limiting
Introduce a mechanism to automatically pull the latest changes from the git repository when the homepage is accessed. This ensures the application stays up-to-date without manual intervention. The feature includes a lock file (`/tmp/hustoj_git_pull.lock`) to prevent excessive pulls, limiting execution to at most once every 60 seconds. The git pull command runs in the background to avoid blocking the page load, with output logged to `/tmp/hustoj_git_pull.log`.
This commit is contained in:
@@ -2,6 +2,15 @@
|
|||||||
////////////////////////////Common head
|
////////////////////////////Common head
|
||||||
$cache_time = 30;
|
$cache_time = 30;
|
||||||
$OJ_CACHE_SHARE = false;
|
$OJ_CACHE_SHARE = false;
|
||||||
|
|
||||||
|
// Auto git pull on homepage visit (at most once per 60 seconds)
|
||||||
|
$git_pull_lock = '/tmp/hustoj_git_pull.lock';
|
||||||
|
if (!file_exists($git_pull_lock) || (time() - filemtime($git_pull_lock)) > 60) {
|
||||||
|
touch($git_pull_lock);
|
||||||
|
$repo_dir = dirname(__DIR__);
|
||||||
|
exec("cd " . escapeshellarg($repo_dir) . " && git pull > /tmp/hustoj_git_pull.log 2>&1 &");
|
||||||
|
}
|
||||||
|
|
||||||
require_once( './include/cache_start.php' );
|
require_once( './include/cache_start.php' );
|
||||||
require_once( './include/db_info.inc.php' );
|
require_once( './include/db_info.inc.php' );
|
||||||
require_once( './include/memcache.php' );
|
require_once( './include/memcache.php' );
|
||||||
|
|||||||
Reference in New Issue
Block a user