How to use electron-installer-common - 10 common examples

To help you get started, we’ve selected a few electron-installer-common examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github electron-userland / electron-installer-redhat / src / installer.js View on Github external
generateOptions () {
    super.generateOptions()

    this.options.name = common.sanitizeName(this.options.name, '-._+a-zA-Z0-9')

    if (!this.options.description && !this.options.productDescription) {
      throw new Error("No Description or ProductDescription provided. Please set either a description in the app's package.json or provide it in the options.")
    }

    if (this.options.description) {
      // Do not end with a period
      this.options.description = this.options.description.replace(/\.*$/, '')
    }

    // Wrap the extended description to avoid rpmlint warning about
    // `description-line-too-long`.
    this.options.productDescription = wrap(this.options.productDescription, { width: 80, indent: '' })

    // Merges user and default dependencies
    this.options.requires = common.mergeUserSpecified(this.userSupplied, 'requires', this.defaults)
github electron-userland / electron-installer-debian / src / installer.js View on Github external
if (!this.options.description && !this.options.productDescription) {
      throw new Error("No Description or ProductDescription provided. Please set either a description in the app's package.json or provide it in the this.options.")
    }

    if (this.options.description) {
      this.options.description = this.normalizeDescription(this.options.description)
    }

    if (this.options.productDescription) {
      this.options.productDescription = this.normalizeExtendedDescription(this.options.productDescription)
    }

    // Create array with unique values from default & user-supplied dependencies
    for (const prop of ['depends', 'recommends', 'suggests', 'enhances', 'preDepends']) {
      this.options[prop] = common.mergeUserSpecified(this.userSupplied, prop, this.defaults)
    }

    return this.options
  }
github electron-userland / electron-installer-redhat / src / installer.js View on Github external
if (!this.options.description && !this.options.productDescription) {
      throw new Error("No Description or ProductDescription provided. Please set either a description in the app's package.json or provide it in the options.")
    }

    if (this.options.description) {
      // Do not end with a period
      this.options.description = this.options.description.replace(/\.*$/, '')
    }

    // Wrap the extended description to avoid rpmlint warning about
    // `description-line-too-long`.
    this.options.productDescription = wrap(this.options.productDescription, { width: 80, indent: '' })

    // Merges user and default dependencies
    this.options.requires = common.mergeUserSpecified(this.userSupplied, 'requires', this.defaults)

    this.normalizeVersion()
  }
github electron-userland / electron-installer-windows / test / helpers / describe_cli.js View on Github external
before(async () => {
      const logs = await spawn('./src/cli.js', args, null, null)
      printLogs(logs)
    })
github electron-userland / electron-installer-snap / src / index.js View on Github external
sanitizeName (name) {
    if (name.length > 30) {
      throw new Error(`The max length of the name is 30 characters, you have ${name.length}`)
    }

    const sanitized = common.sanitizeName(name.toLowerCase(), '-a-z0-9')
    if (!/[a-z]/.test(sanitized)) {
      throw new Error('The snap name needs to have at least one letter')
    }

    return sanitized
  }
github electron-userland / electron-installer-debian / src / installer.js View on Github external
sanitizeName (name) {
    const sanitized = common.sanitizeName(name.toLowerCase(), '-+.a-z0-9')
    if (sanitized.length < 2) {
      throw new Error('Package name must be at least two characters')
    }
    if (/^[^a-z0-9]/.test(sanitized)) {
      throw new Error('Package name must start with an ASCII number or letter')
    }

    return sanitized
  }
}
github electron-userland / electron-installer-windows / src / installer.js View on Github external
const glob = promisify(require('glob'))

const spawn = require('./spawn')

debug.log = console.info.bind(console)
const defaultLogger = debug('electron-installer-windows')

function defaultRename (dest, src) {
  const ext = path.extname(src)
  if (ext === '.exe' || ext === '.msi') {
    src = `<%= name %>-<%= version %>-setup${ext}`
  }
  return path.join(dest, src)
}

class SquirrelInstaller extends common.ElectronInstaller {
  get contentFunctions () {
    return [
      'copyApplication',
      'createSpec'
    ]
  }

  get packagePattern () {
    return path.join(this.squirrelDir, '*')
  }

  get specPath () {
    return path.join(this.stagingDir, 'nuget', `${this.options.name}.nuspec`)
  }

  get squirrelDir () {
github electron-userland / electron-installer-windows / src / installer.js View on Github external
createPackage () {
    this.options.logger(`Creating package at ${this.stagingDir}`)

    const cmd = path.join(this.vendorDir, 'nuget', 'nuget.exe')
    const args = [
      'pack',
      this.specPath,
      '-BasePath',
      this.stagingAppDir,
      '-OutputDirectory',
      path.join(this.stagingDir, 'nuget'),
      '-NoDefaultExcludes'
    ]

    return common.wrapError('creating package with NuGet', async () => spawn(cmd, args, this.options.logger))
  }
github electron-userland / electron-installer-windows / src / installer.js View on Github external
async syncRemoteReleases () {
    if (!this.options.remoteReleases) {
      return
    }

    this.options.logger(`Syncing package at ${this.stagingDir}`)

    const cmd = path.join(this.vendorDir, 'squirrel', 'SyncReleases.exe')
    const args = [
      '--url',
      this.options.remoteReleases,
      '--releaseDir',
      this.squirrelDir
    ]

    return common.wrapError('syncing remote releases', async () => {
      await fs.ensureDir(this.squirrelDir, '0755')
      return spawn(cmd, args, this.options.logger)
    })
  }
}
github electron-userland / electron-installer-windows / src / installer.js View on Github external
copySquirrelUpdater () {
    const updateSrc = path.join(this.vendorDir, 'squirrel', 'Squirrel.exe')
    const updateDest = path.join(this.stagingAppDir, 'Update.exe')
    return common.wrapError('copying Squirrel updater', async () => fs.copy(updateSrc, updateDest))
  }