HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/gitconfiglocal/index.js
var fs = require('fs');
var ini = require('ini');
var path = require('path');


module.exports = function(dir,cb){
  findGit(dir,function(config) {
    if(!config) return cb(new Error('no gitconfig to be found at '+dir))
    fs.readFile(config,function(err,data){
      if(err) return cb(err);
      try{
       var formatted = format(ini.parse(data.toString()));
      } catch (e){
       return cb(e);
      }
      cb(false,formatted);
    })
  })
}

function format(data){
  var out = {};
  Object.keys(data).forEach(function(k){
    if(k.indexOf('"')> -1) {
      var parts = k.split('"');
      var parentKey = parts.shift().trim();
      var childKey = parts.shift().trim();
      if(!out[parentKey]) out[parentKey] = {};
      out[parentKey][childKey] = data[k];
    } else {
      out[k] = data[k];
    }
  });
  return out; 
}

function findGit(dir, cb) {
  var folder = path.join(dir, '.git/config')
  fs.exists(folder,function(exists) {
    if(exists) return cb(folder)
    if(dir === path.resolve(dir, '..')) return cb(false)
    findGit(path.resolve(dir, '..'), cb)
  })
}