!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/local/lib/node_modules/pm2/node_modules/vizion/lib/svn/   drwxr-xr-x
Free 13.28 GB of 57.97 GB (22.9%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     svn.js (3.63 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
var fs = require('fs');
var waterfall = require('async/waterfall');
var exec = require('child_process').exec;

var cliCommand = require('../cliCommand.js');

var svn = {};

svn.parse = function(folder, cb) {
  var getMeta = function(cb) {
    exec(cliCommand(folder, "svn info"), function(err, stdout, stderr) {
      if(err !== null)
        return cb(err);
      var data = {};
      data.type = 'svn';
      data.url = stdout.match(/Repository Root: ([^\n]+)/);
      if (data.url && typeof(data.url) === 'object') {
        data.url = data.url[1];
      }
      var match = stdout.match(/Relative URL: \^\/([^\n]+)/);
      if (match) {
        var relativeUrl = match[1];
        if (relativeUrl.match(/^trunk/)) {
          data.branch = 'trunk';
        } else if (relativeUrl.match(/^branch/)) {
          match = relativeUrl.match(/^branch(?:es)?\/([^/]+)(?:\/|$)/);
          if (match) {
            data.branch = match[1];
          }
        }
      }
      match = stdout.match(/Last Changed Rev: ([^\n]+)/);
      if (match) {
        data.revision = match[1];
      }
      match = stdout.match(/Last Changed Date: ([^\n]+)/);
      if (match) {
        var date = new Date(match[1]);
        data.update_time = date;
      }
      return cb(null, data);
    });
  }

  var getRevComment = function(data, cb) {
    var rev = data.revision || "BASE";
    exec(cliCommand(folder, "svn log -r " + rev), function(err, stdout, stderr) {
      if(err !== null)
        return cb(err);
      if (rev === "BASE") {
        data.revision = stdout.match(/^(r[0-9]+)\s\|/m);
        if (data.revision) data.revision = data.revision[1];
      }
      data.comment = stdout.match(/lines?\s*\n((.|\n)*)\n-{72}\n$/);
      if (data.comment) data.comment = data.comment[1].replace(/\n/g, '');
      if (!data.update_time) {
        data.update_time = stdout.match(/-+\n(.*?)\n/);
        if (data.update_time) data.update_time = new Date(
          data.update_time[1].split(" | ")[2]
        );
      }
      cb(null, data);
    });
  }

  var getDate = function(data, cb) {
    if (data.update_time)
      return cb(null, data);
    fs.stat(folder+".svn", function(err, stats) {
      if(err !== null)
        return cb(err);
      data.update_time = stats.mtime;
      return cb(null, data);
    });
  }

  waterfall([getMeta, getRevComment, getDate],
  function(err, data) {
    if (err !== null)
      return cb(err);
    return cb(null, data);
  });
}

svn.isUpdated = function(folder, cb) {
  var res = {};

  var getRev = function(str) {
    var matches = str.match(/Changed Rev: ([^\n]+)/);
    if (matches) matches = matches[1];
    return matches;
  }

  exec(cliCommand(folder, "svn info"), function(err, stdout, stderr) {
    if(err !== null)
      return cb(err);
    var current_rev = getRev(stdout);
    exec(cliCommand(folder, "svn info -r HEAD"), function(err, stdout, stderr) {
      if(err !== null)
        return cb(err);
      var recent_rev = getRev(stdout);
      res.is_up_to_date = (recent_rev === current_rev);
      res.new_revision = recent_rev;
      res.current_revision = current_rev;
      return cb(null, res);
    });
  });
}

svn.update = function(folder, cb) {
  var res = {};

  exec(cliCommand(folder, "svn update"), function(err, stdout, stderr) {
    if(err !== null)
      return cb(err);
    var new_rev = stdout.match(/Updated to revision ([^\.]+)/);
    if (new_rev === null)
    {
      res.success = false;
      var old_rev = stdout.match(/At revision ([^\.]+)/);
      res.current_revision = (old_rev) ? old_rev[1] : null;
    }
    else {
      res.success = true;
      res.current_revision = new_rev[1];
    }
    return cb(null, res);
  });
}

module.exports = svn;

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.2856 ]--