HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //opt/alt/alt-nodejs22/root/lib/node_modules/npm/node_modules/@npmcli/git/lib/opts.js
const fs = require('node:fs')
const os = require('node:os')
const path = require('node:path')
const ini = require('ini')

const gitConfigPath = path.join(os.homedir(), '.gitconfig')

let cachedConfig = null

// Function to load and cache the git config
const loadGitConfig = () => {
  if (cachedConfig === null) {
    try {
      cachedConfig = {}
      if (fs.existsSync(gitConfigPath)) {
        const configContent = fs.readFileSync(gitConfigPath, 'utf-8')
        cachedConfig = ini.parse(configContent)
      }
    } catch (error) {
      cachedConfig = {}
    }
  }
  return cachedConfig
}

const checkGitConfigs = () => {
  const config = loadGitConfig()
  return {
    sshCommandSetInConfig: config?.core?.sshCommand !== undefined,
    askPassSetInConfig: config?.core?.askpass !== undefined,
  }
}

const sshCommandSetInEnv = process.env.GIT_SSH_COMMAND !== undefined
const askPassSetInEnv = process.env.GIT_ASKPASS !== undefined
const { sshCommandSetInConfig, askPassSetInConfig } = checkGitConfigs()

// Values we want to set if they're not already defined by the end user
// This defaults to accepting new ssh host key fingerprints
const finalGitEnv = {
  ...(askPassSetInEnv || askPassSetInConfig ? {} : {
    GIT_ASKPASS: 'echo',
  }),
  ...(sshCommandSetInEnv || sshCommandSetInConfig ? {} : {
    GIT_SSH_COMMAND: 'ssh -oStrictHostKeyChecking=accept-new',
  }),
}

module.exports = (opts = {}) => ({
  stdioString: true,
  ...opts,
  shell: false,
  env: opts.env || { ...finalGitEnv, ...process.env },
})

// Export the loadGitConfig function for testing
module.exports.loadGitConfig = loadGitConfig