File code-oss.mjs of Package code

#!XXXLIBDIRXXX/electron/electron
// We bypass the /usr/bin/electron wrapper to avoid passing custom electron-flags twice.

const name = 'code'

import {app} from 'electron/main'
import * as path from 'node:path'
import * as fs from 'node:fs'

// Change command name.
const fd = fs.openSync("/proc/self/comm", fs.constants.O_WRONLY)
fs.writeSync(fd, name)
fs.closeSync(fd)

// Remove first command line argument (XXXLIBDIRXXX/electron/electron)
process.argv.splice(0, 1)

// Set application paths.
const appPath = 'file://XXXLIBDIRXXX/code'
const packageJson = (await import(appPath + '/package.json', {assert: {type: 'json'}})).default
app.setAppPath(appPath)
app.setDesktopName(name + '.desktop')
app.setName('Code')
app.setPath('userCache', path.join(app.getPath('cache'), name))
app.setPath('userData', path.join(app.getPath('appData'), name))
app.setVersion(packageJson.version)

// Run the application.
await import(appPath + '/out/main.js')
openSUSE Build Service is sponsored by