HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/nodejs/v16.9.0/lib/node_modules/pm2/node_modules/charm/example/resize.js
var c = require('../')();
c.pipe(process.stdout);
c.on('^C', process.exit);

var queue = (function () {
    var tasks = [];
    var pending = false;
    
    return {
        abort : function () {
            tasks = [];
            next();
        },
        push : function (t) {
            tasks.push(t);
            if (!pending) next();
        }
    };
    
    function next () {
        pending = true;
        process.nextTick(function () {
            if (tasks.length === 0) return;
            var t = tasks.shift();
            t();
            pending = false;
            next();
        });
    }
})();

process.stdout.on('resize', draw);
draw();
setInterval(function () {}, 1e8);

function draw () {
    var cols = process.stdout.columns;
    var rows = process.stdout.rows;
    queue.abort();
    
    queue.push(function () {
        c.reset();
        c.background('blue');
        c.position(1, 1);
        c.write(Array(cols + 1).join(' '));
    });
    
    for (var y = 1; y < rows; y++) {
        queue.push(function () {
            c.position(1, y);
            c.write(' ');
            c.position(cols, y);
            c.write(' ');
        });
    }
    
    queue.push(function () {
        c.position(1, rows);
        c.write(Array(cols + 1).join(' '));
        c.display('reset');
    });
}