keeweb/Gruntfile.js

795 lines
29 KiB
JavaScript
Raw Normal View History

2016-07-17 13:30:38 +02:00
/* eslint-env node */
2019-10-11 23:06:36 +02:00
const fs = require('fs-extra');
2019-08-16 18:45:11 +02:00
const path = require('path');
2020-11-29 17:10:56 +01:00
const { execSync } = require('child_process');
2019-10-11 23:06:36 +02:00
const debug = require('debug');
2019-01-06 11:44:10 +01:00
2019-09-16 18:18:51 +02:00
const webpackConfig = require('./build/webpack.config');
2019-10-12 13:24:37 +02:00
const webpackConfigTest = require('./test/test.webpack.config');
2019-01-06 13:09:45 +01:00
const pkg = require('./package.json');
2019-10-11 23:06:36 +02:00
debug.enable('electron-notarize');
2015-10-17 23:49:24 +02:00
2020-06-01 16:53:51 +02:00
module.exports = function (grunt) {
2015-10-17 23:49:24 +02:00
require('time-grunt')(grunt);
require('load-grunt-tasks')(grunt);
2019-01-06 13:09:45 +01:00
grunt.loadTasks('build/tasks');
2019-01-06 14:33:27 +01:00
require('./grunt.tasks')(grunt);
require('./grunt.entrypoints')(grunt);
2019-01-06 13:09:45 +01:00
const date = new Date();
2019-01-06 15:51:45 +01:00
grunt.config.set('date', date);
2019-01-06 13:09:45 +01:00
const dt = date.toISOString().replace(/T.*/, '');
const year = date.getFullYear();
const electronVersion = pkg.dependencies.electron.replace(/^\D/, '');
const skipSign = grunt.option('skip-sign');
2020-06-02 12:41:30 +02:00
const getCodeSignConfig = () =>
skipSign ? { identities: {} } : require('./keys/codesign.json');
2020-01-19 12:20:19 +01:00
2020-12-30 18:12:28 +01:00
let sha = grunt.option('commit-sha');
if (!sha) {
try {
sha = execSync('git rev-parse --short HEAD').toString('utf8').trim();
} catch (e) {
grunt.warn(
2020-12-30 18:17:46 +01:00
"Cannot get commit sha from git. It's recommended to build KeeWeb from a git repo " +
2020-12-30 18:12:28 +01:00
'because commit sha is displayed in the UI, however if you would like to build from a folder, ' +
2020-12-30 18:17:46 +01:00
'you can override what will be displayed in the UI with --commit-sha=xxx.'
2020-12-30 18:12:28 +01:00
);
}
}
grunt.log.writeln(`Building KeeWeb v${pkg.version} (${sha})`);
2020-11-29 17:10:56 +01:00
2019-10-12 13:24:37 +02:00
const webpackOptions = {
date,
beta: !!grunt.option('beta'),
sha,
appleTeamId: '3LE7JZ657W'
2019-10-12 13:24:37 +02:00
};
2020-05-14 20:36:14 +02:00
const windowsAppVersionString = {
CompanyName: 'KeeWeb',
FileDescription: pkg.description,
OriginalFilename: 'KeeWeb.exe',
ProductName: 'KeeWeb',
InternalName: 'KeeWeb'
};
2020-11-30 20:52:09 +01:00
const appdmgOptions = (arch) => ({
title: 'KeeWeb',
icon: 'graphics/icon.icns',
background: 'graphics/dmg-background.png',
'background-color': '#E0E6F9',
'icon-size': 80,
window: { size: { width: 658, height: 498 } },
contents: [
{ x: 438, y: 344, type: 'link', path: '/Applications' },
{
x: 192,
y: 344,
type: 'file',
path: `tmp/desktop/KeeWeb-darwin-${arch}/KeeWeb.app`
}
]
});
2021-02-04 21:30:52 +01:00
const linuxDependencies = [
'libappindicator1',
'libgconf-2-4',
'gnome-keyring',
'libxtst6',
'libx11-6',
'libatspi2.0-0'
];
2015-10-17 23:49:24 +02:00
grunt.initConfig({
2020-06-04 20:13:15 +02:00
noop: { noop: {} },
2015-10-17 23:49:24 +02:00
clean: {
2015-11-07 08:55:45 +01:00
dist: ['dist', 'tmp'],
desktop: ['tmp/desktop', 'dist/desktop']
2015-10-17 23:49:24 +02:00
},
copy: {
html: {
src: 'app/index.html',
dest: 'tmp/index.html',
nonull: true
},
'content-dist': {
cwd: 'app/content/',
src: '**',
dest: 'dist/',
expand: true,
2020-04-09 18:36:56 +02:00
nonull: true
},
2017-11-11 19:40:07 +01:00
icons: {
cwd: 'app/icons/',
src: ['*.png', '*.svg'],
dest: 'tmp/icons/',
expand: true,
nonull: true
},
'dist-icons': {
cwd: 'app/icons/',
src: ['*.png', '*.svg'],
dest: 'dist/icons/',
expand: true,
2016-02-07 14:08:37 +01:00
nonull: true
},
manifest: {
cwd: 'app/manifest/',
src: ['*.json', '*.xml'],
dest: 'tmp/',
expand: true,
nonull: true
},
'dist-manifest': {
cwd: 'app/manifest/',
src: ['*.json', '*.xml'],
dest: 'dist/',
expand: true,
nonull: true
},
2019-09-28 20:27:39 +02:00
'desktop-html': {
src: 'dist/index.html',
dest: 'tmp/desktop/app/index.html',
nonull: true
},
2016-07-16 18:39:52 +02:00
'desktop-app-content': {
2017-01-28 23:13:39 +01:00
cwd: 'desktop/',
2017-06-11 11:37:09 +02:00
src: ['**', '!package-lock.json'],
2015-11-14 09:39:22 +01:00
dest: 'tmp/desktop/app/',
expand: true,
nonull: true
},
2020-11-30 20:52:09 +01:00
'desktop-darwin-installer-helper-x64': {
2021-01-09 11:44:13 +01:00
cwd: 'tmp/desktop/KeeWeb Installer.app',
src: '**',
dest:
'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app/Contents/Installer/KeeWeb Installer.app',
expand: true,
nonull: true,
options: { mode: true }
},
2020-11-30 20:52:09 +01:00
'desktop-darwin-installer-helper-arm64': {
2021-01-09 11:44:13 +01:00
cwd: 'tmp/desktop/KeeWeb Installer.app',
2020-11-30 20:52:09 +01:00
src: '**',
dest:
'tmp/desktop/KeeWeb-darwin-arm64/KeeWeb.app/Contents/Installer/KeeWeb Installer.app',
expand: true,
nonull: true,
options: { mode: true }
},
2016-07-22 21:13:39 +02:00
'desktop-win32-dist-x64': {
src: 'tmp/desktop/KeeWeb.win.x64.exe',
dest: `dist/desktop/KeeWeb-${pkg.version}.win.x64.exe`,
nonull: true
},
'desktop-win32-dist-ia32': {
src: 'tmp/desktop/KeeWeb.win.ia32.exe',
dest: `dist/desktop/KeeWeb-${pkg.version}.win.ia32.exe`,
2016-07-21 22:54:03 +02:00
nonull: true
},
2020-05-14 22:59:11 +02:00
'desktop-win32-dist-arm64': {
src: 'tmp/desktop/KeeWeb.win.arm64.exe',
dest: `dist/desktop/KeeWeb-${pkg.version}.win.arm64.exe`,
nonull: true
},
2020-11-30 20:52:09 +01:00
'native-modules-darwin-x64': {
src: 'node_modules/@keeweb/keeweb-native-modules/*-darwin-x64.node',
dest: 'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app/Contents/Resources/',
nonull: true
},
2020-11-30 20:52:09 +01:00
'native-modules-darwin-arm64': {
src: 'node_modules/@keeweb/keeweb-native-modules/*-darwin-arm64.node',
dest: 'tmp/desktop/KeeWeb-darwin-arm64/KeeWeb.app/Contents/Resources/',
nonull: true
},
'native-modules-win32-x64': {
src: 'node_modules/@keeweb/keeweb-native-modules/*-win32-x64.node',
dest: 'tmp/desktop/KeeWeb-win32-x64/resources/',
nonull: true
},
'native-modules-win32-ia32': {
src: 'node_modules/@keeweb/keeweb-native-modules/*-win32-ia32.node',
dest: 'tmp/desktop/KeeWeb-win32-ia32/resources/',
nonull: true
},
'native-modules-win32-arm64': {
src: 'node_modules/@keeweb/keeweb-native-modules/*-win32-arm64.node',
dest: 'tmp/desktop/KeeWeb-win32-arm64/resources/',
nonull: true
},
'native-modules-linux-x64': {
src: 'node_modules/@keeweb/keeweb-native-modules/*-linux-x64.node',
dest: 'tmp/desktop/keeweb-linux-x64/resources/',
nonull: true
},
'electron-builder-dist-linux-rpm': {
2020-04-04 17:12:01 +02:00
src: `tmp/desktop/electron-builder/KeeWeb-${pkg.version}.x86_64.rpm`,
dest: `dist/desktop/KeeWeb-${pkg.version}.linux.x86_64.rpm`,
nonull: true
},
'electron-builder-dist-linux-snap': {
2020-04-04 17:12:01 +02:00
src: `tmp/desktop/electron-builder/KeeWeb_${pkg.version}_amd64.snap`,
2020-04-03 17:17:30 +02:00
dest: `dist/desktop/KeeWeb-${pkg.version}.linux.snap`,
nonull: true
},
'electron-builder-dist-linux-appimage': {
2020-04-03 17:17:30 +02:00
src: `tmp/desktop/electron-builder/keeweb-${pkg.version}.AppImage`,
dest: `dist/desktop/KeeWeb-${pkg.version}.linux.AppImage`,
nonull: true
2021-01-09 11:44:13 +01:00
},
'darwin-installer-icon': {
src: 'graphics/icon.icns',
dest: 'tmp/desktop/KeeWeb Installer.app/Contents/Resources/applet.icns',
nonull: true
2021-04-21 19:28:44 +02:00
},
'native-messaging-host-darwin-x64': {
src:
'node_modules/@keeweb/keeweb-native-messaging-host/darwin-x64/keeweb-native-messaging-host',
dest:
'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app/Contents/MacOS/util/keeweb-native-messaging-host',
nonull: true,
2021-05-08 17:48:30 +02:00
options: { mode: '0755' }
2021-04-21 19:28:44 +02:00
},
'native-messaging-host-darwin-arm64': {
src:
'node_modules/@keeweb/keeweb-native-messaging-host/darwin-arm64/keeweb-native-messaging-host',
dest:
'tmp/desktop/KeeWeb-darwin-arm64/KeeWeb.app/Contents/MacOS/util/keeweb-native-messaging-host',
nonull: true,
2021-05-08 17:48:30 +02:00
options: { mode: '0755' }
2021-04-21 19:28:44 +02:00
},
'native-messaging-host-linux-x64': {
src:
'node_modules/@keeweb/keeweb-native-messaging-host/linux-x64/keeweb-native-messaging-host',
dest: 'tmp/desktop/keeweb-linux-x64/keeweb-native-messaging-host',
nonull: true,
2021-05-08 17:48:30 +02:00
options: { mode: '0755' }
2021-04-21 19:28:44 +02:00
},
'native-messaging-host-win32-x64': {
src:
'node_modules/@keeweb/keeweb-native-messaging-host/win32-x64/keeweb-native-messaging-host.exe',
dest: 'tmp/desktop/KeeWeb-win32-x64/keeweb-native-messaging-host.exe',
nonull: true
},
'native-messaging-host-win32-ia32': {
src:
'node_modules/@keeweb/keeweb-native-messaging-host/win32-ia32/keeweb-native-messaging-host.exe',
dest: 'tmp/desktop/KeeWeb-win32-ia32/keeweb-native-messaging-host.exe',
nonull: true
},
'native-messaging-host-win32-arm64': {
src:
'node_modules/@keeweb/keeweb-native-messaging-host/win32-arm64/keeweb-native-messaging-host.exe',
dest: 'tmp/desktop/KeeWeb-win32-arm64/keeweb-native-messaging-host.exe',
nonull: true
2015-10-17 23:49:24 +02:00
}
},
2016-07-17 13:30:38 +02:00
eslint: {
app: ['app/scripts/**/*.js'],
2017-01-28 23:13:39 +01:00
desktop: ['desktop/**/*.js', '!desktop/node_modules/**'],
2019-08-18 08:09:42 +02:00
build: ['Gruntfile.js', 'grunt.*.js', 'build/**/*.js', 'webpack.config.js'],
plugins: ['plugins/**/*.js'],
2021-01-09 13:15:25 +01:00
util: ['util/**/*.js'],
installer: ['package/osx/installer.js']
2015-10-17 23:49:24 +02:00
},
inline: {
app: {
src: 'tmp/index.html',
dest: 'tmp/app.html'
}
},
2020-04-02 16:27:10 +02:00
'csp-hashes': {
options: {
algo: 'sha512',
expected: {
style: 1,
2020-12-12 10:38:39 +01:00
script: 1
2020-04-02 16:27:10 +02:00
}
},
app: {
src: 'tmp/app.html',
2020-05-04 19:21:29 +02:00
dest: 'dist/index.html'
2020-04-02 16:27:10 +02:00
}
},
2015-10-17 23:49:24 +02:00
htmlmin: {
options: {
removeComments: true,
collapseWhitespace: true
},
app: {
files: {
2020-04-02 16:27:10 +02:00
'tmp/app.html': 'tmp/app.html'
2015-10-17 23:49:24 +02:00
}
}
},
2015-10-21 23:02:17 +02:00
'string-replace': {
2021-01-07 22:05:04 +01:00
'update-manifest': {
2015-10-21 23:02:17 +02:00
options: {
2015-11-14 09:39:22 +01:00
replacements: [
2019-08-18 08:05:38 +02:00
{
2021-01-07 22:05:04 +01:00
pattern: /"version":\s*".*?"/,
replacement: `"version": "${pkg.version}"`
2019-08-18 08:05:38 +02:00
},
{
2021-01-07 22:05:04 +01:00
pattern: /"date":\s*".*?"/,
replacement: `"date": "${dt}"`
2019-08-18 08:05:38 +02:00
}
2015-11-14 09:39:22 +01:00
]
2015-10-21 23:02:17 +02:00
},
2021-01-07 22:05:04 +01:00
files: { 'dist/update.json': 'app/update.json' }
2015-11-14 09:39:22 +01:00
},
'service-worker': {
options: { replacements: [{ pattern: '0.0.0', replacement: pkg.version }] },
files: { 'dist/service-worker.js': 'app/service-worker.js' }
2017-02-05 11:08:26 +01:00
},
'desktop-public-key': {
2019-08-16 23:05:39 +02:00
options: {
replacements: [
{
pattern: "'@@PUBLIC_KEY_CONTENT'",
replacement:
2019-08-18 08:05:38 +02:00
'`' +
fs
.readFileSync('app/resources/public-key.pem', {
encoding: 'utf8'
})
.trim() +
'`'
2019-08-16 23:05:39 +02:00
}
]
},
files: { 'tmp/desktop/app/main.js': 'desktop/main.js' }
2015-10-21 23:02:17 +02:00
}
},
2015-10-17 23:49:24 +02:00
webpack: {
2019-10-12 13:24:37 +02:00
app: webpackConfig.config(webpackOptions),
test: webpackConfigTest
2016-07-16 13:36:15 +02:00
},
'webpack-dev-server': {
options: {
2019-10-26 22:56:36 +02:00
webpack: webpackConfig.config({
...webpackOptions,
mode: 'development',
sha: 'dev'
}),
2019-08-16 18:45:11 +02:00
publicPath: '/',
contentBase: [
path.resolve(__dirname, 'tmp'),
path.resolve(__dirname, 'app/content')
],
2016-07-16 13:36:15 +02:00
progress: false
},
2015-10-17 23:49:24 +02:00
js: {
2017-01-30 22:55:26 +01:00
keepalive: true,
2016-07-16 13:36:15 +02:00
port: 8085
2015-10-17 23:49:24 +02:00
}
},
2015-11-07 08:55:45 +01:00
electron: {
options: {
name: 'KeeWeb',
2015-11-14 09:39:22 +01:00
dir: 'tmp/desktop/app',
2015-11-07 08:55:45 +01:00
out: 'tmp/desktop',
2019-08-18 10:17:09 +02:00
electronVersion,
2015-11-07 08:55:45 +01:00
overwrite: true,
2017-12-02 20:38:13 +01:00
asar: true,
2019-08-16 23:05:39 +02:00
appCopyright: `Copyright © ${year} Antelle`,
appVersion: pkg.version,
2020-11-29 17:10:56 +01:00
buildVersion: sha
2015-11-07 08:55:45 +01:00
},
2016-07-16 18:39:52 +02:00
linux: {
2015-11-07 08:55:45 +01:00
options: {
2020-04-03 17:17:30 +02:00
name: 'keeweb',
2015-11-07 08:55:45 +01:00
platform: 'linux',
2020-11-30 20:52:09 +01:00
arch: 'x64',
icon: 'graphics/icon.ico'
2015-11-07 08:55:45 +01:00
}
},
2020-11-30 20:52:09 +01:00
'darwin-x64': {
2016-03-01 20:06:23 +01:00
options: {
2016-07-16 18:39:52 +02:00
platform: 'darwin',
2020-11-30 20:52:09 +01:00
arch: 'x64',
icon: 'graphics/icon.icns',
appBundleId: 'net.antelle.keeweb',
appCategoryType: 'public.app-category.productivity',
extendInfo: 'package/osx/extend.plist'
}
},
'darwin-arm64': {
options: {
platform: 'darwin',
arch: 'arm64',
2016-07-16 18:39:52 +02:00
icon: 'graphics/icon.icns',
2019-08-16 23:05:39 +02:00
appBundleId: 'net.antelle.keeweb',
appCategoryType: 'public.app-category.productivity',
extendInfo: 'package/osx/extend.plist'
2016-03-01 20:06:23 +01:00
}
2015-11-07 08:55:45 +01:00
},
2020-05-14 20:52:02 +02:00
'win32-x64': {
2020-05-14 20:36:14 +02:00
options: {
platform: 'win32',
2020-05-14 20:52:02 +02:00
arch: 'x64',
2020-05-14 20:36:14 +02:00
icon: 'graphics/icon.ico',
buildVersion: pkg.version,
'version-string': windowsAppVersionString
}
},
2020-05-14 20:52:02 +02:00
'win32-ia32': {
2020-05-14 20:36:14 +02:00
options: {
platform: 'win32',
2020-05-14 20:52:02 +02:00
arch: 'ia32',
2020-05-14 20:36:14 +02:00
icon: 'graphics/icon.ico',
buildVersion: pkg.version,
'version-string': windowsAppVersionString
}
},
'win32-arm64': {
2015-11-07 08:55:45 +01:00
options: {
2016-07-16 18:39:52 +02:00
platform: 'win32',
2020-05-14 20:36:14 +02:00
arch: 'arm64',
2016-07-16 18:49:19 +02:00
icon: 'graphics/icon.ico',
2019-08-16 23:05:39 +02:00
buildVersion: pkg.version,
2020-05-14 20:36:14 +02:00
'version-string': windowsAppVersionString
2015-11-07 08:55:45 +01:00
}
}
},
'electron-builder': {
linux: {
options: {
2020-04-04 17:00:07 +02:00
publish: 'never',
targets: 'linux',
2020-04-03 17:17:30 +02:00
prepackaged: 'tmp/desktop/keeweb-linux-x64',
config: {
appId: 'net.antelle.keeweb',
2020-04-03 17:17:30 +02:00
productName: 'keeweb',
copyright: `Copyright © ${year} Antelle`,
directories: {
output: 'tmp/desktop/electron-builder',
app: 'desktop',
buildResources: 'graphics'
},
2020-03-18 19:52:17 +01:00
fileAssociations: {
ext: 'kdbx',
name: 'KeePass 2 database',
mimeType: 'application/x-keepass2'
},
linux: {
target: ['AppImage', 'snap', 'rpm'],
category: 'Utility'
},
rpm: {
2021-02-04 21:30:52 +01:00
// depends: linuxDependencies
2020-03-18 19:52:17 +01:00
},
snap: {
2021-02-04 21:30:52 +01:00
stagePackages: linuxDependencies
}
}
}
}
},
2021-02-06 14:46:24 +01:00
'electron-patch': {
'win32-x64': 'tmp/desktop/KeeWeb-win32-x64/KeeWeb.exe',
'win32-ia32': 'tmp/desktop/KeeWeb-win32-ia32/KeeWeb.exe',
'win32-arm64': 'tmp/desktop/KeeWeb-win32-arm64/KeeWeb.exe',
'darwin-x64': 'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app',
'darwin-arm64': 'tmp/desktop/KeeWeb-darwin-arm64/KeeWeb.app',
'linux': 'tmp/desktop/KeeWeb-linux-x64/keeweb'
},
2021-01-09 11:44:13 +01:00
osacompile: {
options: {
language: 'JavaScript'
},
installer: {
files: {
2021-01-09 11:49:54 +01:00
'tmp/desktop/KeeWeb Installer.app': 'package/osx/installer.js'
2021-01-09 11:44:13 +01:00
}
}
},
2015-11-07 08:55:45 +01:00
compress: {
2016-07-16 18:39:52 +02:00
options: {
level: 6
},
'win32-x64': {
2016-07-22 21:13:39 +02:00
options: { archive: `dist/desktop/KeeWeb-${pkg.version}.win.x64.zip` },
2016-07-16 18:39:52 +02:00
files: [{ cwd: 'tmp/desktop/KeeWeb-win32-x64', src: '**', expand: true }]
},
'win32-ia32': {
2016-07-22 21:13:39 +02:00
options: { archive: `dist/desktop/KeeWeb-${pkg.version}.win.ia32.zip` },
2016-07-16 18:39:52 +02:00
files: [{ cwd: 'tmp/desktop/KeeWeb-win32-ia32', src: '**', expand: true }]
},
2020-05-14 20:52:02 +02:00
'win32-arm64': {
options: { archive: `dist/desktop/KeeWeb-${pkg.version}.win.arm64.zip` },
files: [{ cwd: 'tmp/desktop/KeeWeb-win32-arm64', src: '**', expand: true }]
},
2016-07-16 18:39:52 +02:00
'linux-x64': {
2016-07-22 21:13:39 +02:00
options: { archive: `dist/desktop/KeeWeb-${pkg.version}.linux.x64.zip` },
2019-08-16 23:05:39 +02:00
files: [
2020-04-03 17:17:30 +02:00
{ cwd: 'tmp/desktop/keeweb-linux-x64', src: '**', expand: true },
2019-08-16 23:05:39 +02:00
{ cwd: 'graphics', src: '128x128.png', nonull: true, expand: true }
]
2016-07-16 18:39:52 +02:00
}
},
appdmg: {
2020-11-30 20:52:09 +01:00
x64: {
options: appdmgOptions('x64'),
dest: `dist/desktop/KeeWeb-${pkg.version}.mac.x64.dmg`
2016-03-01 20:06:23 +01:00
},
2020-11-30 20:52:09 +01:00
arm64: {
2020-11-30 21:03:20 +01:00
options: appdmgOptions('arm64'),
2020-11-30 20:52:09 +01:00
dest: `dist/desktop/KeeWeb-${pkg.version}.mac.arm64.dmg`
2015-11-07 08:55:45 +01:00
}
2015-11-14 16:47:51 +01:00
},
2016-07-16 20:35:16 +02:00
nsis: {
options: {
vars: {
version: pkg.version,
2020-11-29 17:10:56 +01:00
rev: sha,
2016-07-16 20:35:16 +02:00
homepage: pkg.homepage
}
},
'win32-x64': {
options: {
2016-07-22 21:13:39 +02:00
installScript: 'package/nsis/main.nsi',
2016-07-17 11:13:14 +02:00
arch: 'x64',
2016-07-21 22:54:03 +02:00
output: 'tmp/desktop/KeeWeb.win.x64.exe'
2016-07-16 20:35:16 +02:00
}
},
2016-07-22 21:13:39 +02:00
'win32-un-x64': {
options: {
installScript: 'package/nsis/main-un.nsi',
arch: 'x64',
output: 'tmp/desktop/KeeWeb-win32-x64/uninst.exe'
}
},
2016-07-16 20:35:16 +02:00
'win32-ia32': {
options: {
2016-07-22 21:13:39 +02:00
installScript: 'package/nsis/main.nsi',
2016-07-17 11:13:14 +02:00
arch: 'ia32',
2016-07-21 22:54:03 +02:00
output: 'tmp/desktop/KeeWeb.win.ia32.exe'
2016-07-16 20:35:16 +02:00
}
2016-07-22 21:13:39 +02:00
},
'win32-un-ia32': {
options: {
installScript: 'package/nsis/main-un.nsi',
arch: 'ia32',
output: 'tmp/desktop/KeeWeb-win32-ia32/uninst.exe'
}
2020-05-14 22:59:11 +02:00
},
'win32-arm64': {
options: {
installScript: 'package/nsis/main.nsi',
arch: 'arm64',
output: 'tmp/desktop/KeeWeb.win.arm64.exe'
}
},
'win32-un-arm64': {
options: {
installScript: 'package/nsis/main-un.nsi',
arch: 'arm64',
output: 'tmp/desktop/KeeWeb-win32-arm64/uninst.exe'
}
2016-07-16 20:35:16 +02:00
}
},
2019-09-09 16:24:45 +02:00
chmod: {
2019-09-09 17:13:28 +02:00
'linux-desktop-x64': {
2019-09-09 16:24:45 +02:00
options: {
mode: '4755'
},
2020-04-03 17:17:30 +02:00
src: ['tmp/desktop/keeweb-linux-x64/chrome-sandbox']
2019-09-09 16:24:45 +02:00
}
},
2016-04-02 13:21:07 +02:00
deb: {
2017-05-12 20:58:53 +02:00
options: {
tmpPath: 'tmp/desktop/',
package: {
name: 'keeweb-desktop',
version: pkg.version,
description: pkg.description,
author: pkg.author,
homepage: pkg.homepage,
2020-11-29 17:10:56 +01:00
rev: sha
2017-05-12 20:58:53 +02:00
}
},
2016-07-16 18:39:52 +02:00
'linux-x64': {
2016-04-02 13:21:07 +02:00
options: {
info: {
arch: 'amd64',
2017-05-20 20:13:18 +02:00
pkgName: `KeeWeb-${pkg.version}.linux.x64.deb`,
targetDir: 'dist/desktop',
appName: 'KeeWeb',
2021-02-04 21:30:52 +01:00
depends: linuxDependencies.join(', '),
2017-05-20 20:13:18 +02:00
scripts: {
postinst: 'package/deb/scripts/postinst'
}
2016-04-02 13:21:07 +02:00
}
},
files: [
2017-05-12 20:58:53 +02:00
{ cwd: 'package/deb/usr', src: '**', dest: '/usr', expand: true, nonull: true },
2019-08-16 23:05:39 +02:00
{
2020-04-03 17:17:30 +02:00
cwd: 'tmp/desktop/keeweb-linux-x64/',
2019-08-16 23:05:39 +02:00
src: '**',
dest: '/usr/share/keeweb-desktop',
2019-08-16 23:05:39 +02:00
expand: true,
nonull: true
},
{
src: 'graphics/128x128.png',
dest: '/usr/share/icons/hicolor/128x128/apps/keeweb.png',
nonull: true
}
2017-05-12 20:58:53 +02:00
]
2016-04-02 13:21:07 +02:00
}
},
'osx-sign': {
options: {
2020-06-01 23:54:55 +02:00
get identity() {
return getCodeSignConfig().identities.app;
},
hardenedRuntime: true,
entitlements: 'package/osx/entitlements.plist',
'entitlements-inherit': 'package/osx/entitlements-inherit.plist',
'gatekeeper-assess': false
},
2020-11-30 20:52:09 +01:00
'desktop-x64': {
options: {
'provisioning-profile': './keys/keeweb.provisionprofile'
},
src: 'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app'
2020-11-30 20:52:09 +01:00
},
'desktop-arm64': {
options: {
'provisioning-profile': './keys/keeweb.provisionprofile'
},
2020-11-30 20:52:09 +01:00
src: 'tmp/desktop/KeeWeb-darwin-arm64/KeeWeb.app'
2021-01-09 11:44:13 +01:00
},
'installer': {
src: 'tmp/desktop/KeeWeb Installer.app'
}
},
notarize: {
options: {
appBundleId: 'net.antelle.keeweb',
2020-06-01 23:54:55 +02:00
get appleId() {
return getCodeSignConfig().appleId;
},
appleIdPassword: '@keychain:AC_PASSWORD',
2020-06-01 23:54:55 +02:00
get ascProvider() {
return getCodeSignConfig().teamId;
}
},
2020-11-30 20:52:09 +01:00
'desktop-x64': {
src: 'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app'
2020-11-30 20:52:09 +01:00
},
'desktop-arm64': {
src: 'tmp/desktop/KeeWeb-darwin-arm64/KeeWeb.app'
}
},
2016-07-20 19:05:39 +02:00
'sign-exe': {
2016-07-21 22:54:03 +02:00
options: {
2020-04-03 20:26:27 +02:00
url: pkg.homepage,
2020-06-01 23:54:55 +02:00
get windows() {
return getCodeSignConfig().windows;
},
get certHash() {
return getCodeSignConfig().microsoftCertHash;
}
2016-07-21 22:54:03 +02:00
},
2016-07-22 21:13:39 +02:00
'win32-build-x64': {
options: {
files: {
'tmp/desktop/KeeWeb-win32-x64/KeeWeb.exe': 'KeeWeb',
2021-04-13 22:40:35 +02:00
'tmp/desktop/KeeWeb-win32-x64/keeweb-native-messaging-host.exe':
'KeeWeb Native Messaging Host',
2016-07-22 21:13:39 +02:00
'tmp/desktop/KeeWeb-win32-x64/ffmpeg.dll': '',
2019-08-18 08:05:38 +02:00
'tmp/desktop/KeeWeb-win32-x64/libEGL.dll':
'ANGLE libEGL Dynamic Link Library',
'tmp/desktop/KeeWeb-win32-x64/libGLESv2.dll':
2019-08-18 11:21:24 +02:00
'ANGLE libGLESv2 Dynamic Link Library'
2016-07-22 21:13:39 +02:00
}
}
},
'win32-build-ia32': {
options: {
files: {
'tmp/desktop/KeeWeb-win32-ia32/KeeWeb.exe': 'KeeWeb',
2021-04-13 22:40:35 +02:00
'tmp/desktop/KeeWeb-win32-ia32/keeweb-native-messaging-host.exe':
'KeeWeb Native Messaging Host',
2016-07-22 21:13:39 +02:00
'tmp/desktop/KeeWeb-win32-ia32/ffmpeg.dll': '',
2019-08-18 08:05:38 +02:00
'tmp/desktop/KeeWeb-win32-ia32/libEGL.dll':
'ANGLE libEGL Dynamic Link Library',
'tmp/desktop/KeeWeb-win32-ia32/libGLESv2.dll':
2019-08-18 11:21:24 +02:00
'ANGLE libGLESv2 Dynamic Link Library'
2016-07-22 21:13:39 +02:00
}
}
},
2020-05-14 20:52:02 +02:00
'win32-build-arm64': {
options: {
files: {
'tmp/desktop/KeeWeb-win32-arm64/KeeWeb.exe': 'KeeWeb',
2021-04-13 22:40:35 +02:00
'tmp/desktop/KeeWeb-win32-arm64/keeweb-native-messaging-host.exe':
'KeeWeb Native Messaging Host',
2020-05-14 20:52:02 +02:00
'tmp/desktop/KeeWeb-win32-arm64/ffmpeg.dll': '',
'tmp/desktop/KeeWeb-win32-arm64/libEGL.dll':
'ANGLE libEGL Dynamic Link Library',
'tmp/desktop/KeeWeb-win32-arm64/libGLESv2.dll':
'ANGLE libGLESv2 Dynamic Link Library'
}
}
},
2016-07-22 21:13:39 +02:00
'win32-uninst-x64': {
options: {
files: {
'tmp/desktop/KeeWeb-win32-x64/uninst.exe': 'KeeWeb Uninstaller'
}
}
},
'win32-uninst-ia32': {
options: {
files: {
'tmp/desktop/KeeWeb-win32-ia32/uninst.exe': 'KeeWeb Uninstaller'
}
}
},
2020-05-14 22:59:11 +02:00
'win32-uninst-arm64': {
options: {
files: {
'tmp/desktop/KeeWeb-win32-arm64/uninst.exe': 'KeeWeb Uninstaller'
}
}
},
2016-07-21 22:54:03 +02:00
'win32-installer-x64': {
options: {
2016-07-22 21:13:39 +02:00
files: {
'tmp/desktop/KeeWeb.win.x64.exe': 'KeeWeb Setup'
}
2016-07-21 22:54:03 +02:00
}
},
'win32-installer-ia32': {
2016-07-20 19:05:39 +02:00
options: {
2016-07-22 21:13:39 +02:00
files: {
'tmp/desktop/KeeWeb.win.ia32.exe': 'KeeWeb Setup'
}
2016-07-20 19:05:39 +02:00
}
2020-05-14 22:59:11 +02:00
},
'win32-installer-arm64': {
options: {
files: {
'tmp/desktop/KeeWeb.win.arm64.exe': 'KeeWeb Setup'
}
}
2016-07-20 19:05:39 +02:00
}
2016-07-20 19:32:21 +02:00
},
2017-05-12 20:37:27 +02:00
'sign-dist': {
2019-08-16 23:05:39 +02:00
dist: {
2017-05-12 20:37:27 +02:00
options: {
2017-06-11 11:37:09 +02:00
sign: 'dist/desktop/Verify.sign.sha256'
2017-05-12 20:37:27 +02:00
},
files: {
2021-01-08 22:54:45 +01:00
'dist/desktop/Verify.sha256': ['dist/desktop/KeeWeb-*']
2017-05-12 20:37:27 +02:00
}
}
2019-10-12 14:22:39 +02:00
},
'run-test': {
options: {
headless: true
},
default: 'test/runner.html'
},
virustotal: {
options: {
2020-12-16 21:12:48 +01:00
prefix: `keeweb.v${pkg.version}-${sha}.`,
timeout: 10 * 60 * 1000,
get apiKey() {
return require('./keys/virus-total.json').apiKey;
}
},
html: 'dist/index.html'
2015-10-17 23:49:24 +02:00
}
});
};