Linux: create Debian package
This commit is contained in:
@@ -16,18 +16,19 @@ var BUILD_NAME = config.APP_NAME + '-v' + config.APP_VERSION
|
||||
|
||||
function build () {
|
||||
var platform = process.argv[2]
|
||||
var packageType = process.argv.length > 3 ? process.argv[3] : 'all'
|
||||
if (platform === 'darwin') {
|
||||
buildDarwin(printDone)
|
||||
} else if (platform === 'win32') {
|
||||
buildWin32(printDone)
|
||||
} else if (platform === 'linux') {
|
||||
buildLinux(printDone)
|
||||
buildLinux(packageType, printDone)
|
||||
} else {
|
||||
buildDarwin(function (err, buildPath) {
|
||||
printDone(err, buildPath)
|
||||
buildWin32(function (err, buildPath) {
|
||||
printDone(err, buildPath)
|
||||
buildLinux(printDone)
|
||||
buildLinux(packageType, printDone)
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -285,16 +286,45 @@ function buildWin32 (cb) {
|
||||
})
|
||||
}
|
||||
|
||||
function buildLinux (cb) {
|
||||
function buildLinux (packageType, cb) {
|
||||
electronPackager(Object.assign({}, all, linux), function (err, buildPath) {
|
||||
if (err) return cb(err)
|
||||
|
||||
// Create .zip file for Linux
|
||||
var distPath = path.join(config.ROOT_PATH, 'dist')
|
||||
var zipPath = path.join(config.ROOT_PATH, 'dist', BUILD_NAME + '-linux.zip')
|
||||
var appFolderName = path.basename(buildPath[0])
|
||||
cp.execSync(`cd ${distPath} && zip -r -y ${zipPath} ${appFolderName}`)
|
||||
console.log('Created Linux .zip file.')
|
||||
var filesPath = buildPath[0]
|
||||
|
||||
if (packageType === 'deb' || packageType === 'all') {
|
||||
// Create .deb file for debian based platforms
|
||||
var deb = require('nobin-debian-installer')()
|
||||
var destPath = path.join('/opt', pkg.name)
|
||||
|
||||
deb.pack({
|
||||
package: pkg,
|
||||
info: {
|
||||
arch: 'amd64',
|
||||
targetDir: distPath,
|
||||
scripts: {
|
||||
postinst: path.join(config.STATIC_PATH, 'linux', 'postinst'),
|
||||
postrm: path.join(config.STATIC_PATH, 'linux', 'postrm')
|
||||
}
|
||||
}
|
||||
}, [{
|
||||
src: ['./**'],
|
||||
dest: destPath,
|
||||
expand: true,
|
||||
cwd: filesPath
|
||||
}], function (err, done) {
|
||||
console.log(err || 'Created Linux .deb file.')
|
||||
})
|
||||
}
|
||||
|
||||
if (packageType === 'zip' || packageType === 'all') {
|
||||
// Create .zip file for Linux
|
||||
var zipPath = path.join(config.ROOT_PATH, 'dist', BUILD_NAME + '-linux.zip')
|
||||
var appFolderName = path.basename(filesPath)
|
||||
cp.execSync(`cd ${distPath} && zip -r -y ${zipPath} ${appFolderName}`)
|
||||
console.log('Created Linux .zip file.')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ function initLinux () {
|
||||
installIconFile()
|
||||
|
||||
function installDesktopFile () {
|
||||
var templatePath = path.join(config.STATIC_PATH, 'webtorrent.desktop')
|
||||
var templatePath = path.join(config.STATIC_PATH, 'linux', 'webtorrent-desktop.desktop')
|
||||
fs.readFile(templatePath, 'utf8', writeDesktopFile)
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ function initLinux () {
|
||||
'.local',
|
||||
'share',
|
||||
'applications',
|
||||
'webtorrent.desktop'
|
||||
'webtorrent-desktop.desktop'
|
||||
)
|
||||
mkdirp(path.dirname(desktopFilePath))
|
||||
fs.writeFile(desktopFilePath, desktopFile, function (err) {
|
||||
@@ -74,7 +74,7 @@ function initLinux () {
|
||||
'.local',
|
||||
'share',
|
||||
'icons',
|
||||
'webtorrent.png'
|
||||
'webtorrent-desktop.png'
|
||||
)
|
||||
mkdirp(path.dirname(iconFilePath))
|
||||
fs.writeFile(iconFilePath, iconFile, function (err) {
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
"electron-packager": "^6.0.0",
|
||||
"electron-winstaller": "^2.0.5",
|
||||
"gh-release": "^2.0.3",
|
||||
"nobin-debian-installer": "^0.0.3",
|
||||
"plist": "^1.2.0",
|
||||
"rimraf": "^2.5.2",
|
||||
"standard": "^6.0.5"
|
||||
|
||||
3
static/linux/postinst
Normal file
3
static/linux/postinst
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
chmod +x /opt/webtorrent-desktop/WebTorrent
|
||||
ln -s /opt/webtorrent-desktop/WebTorrent /usr/bin/webtorrent-desktop
|
||||
2
static/linux/postrm
Normal file
2
static/linux/postrm
Normal file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
rm /usr/bin/webtorrent-desktop
|
||||
@@ -6,7 +6,7 @@ X-GNOME-FullName=$APP_NAME
|
||||
Comment=Download and share files over BitTorrent
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Icon=webtorrent
|
||||
Icon=webtorrent-desktop
|
||||
Terminal=false
|
||||
Path=$APP_PATH
|
||||
Exec=$EXEC_PATH %U
|
||||
Reference in New Issue
Block a user