mirror of
https://github.com/crazy-max/ghaction-import-gpg.git
synced 2024-12-24 12:12:08 -05:00
Drop Windows support
This commit is contained in:
parent
f71c727ad9
commit
6549c6d230
7 changed files with 22 additions and 353 deletions
1
.github/workflows/ci.yml
vendored
1
.github/workflows/ci.yml
vendored
|
@ -17,7 +17,6 @@ jobs:
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- macOS-latest
|
- macOS-latest
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
name: Checkout
|
name: Checkout
|
||||||
|
|
1
.github/workflows/test.yml
vendored
1
.github/workflows/test.yml
vendored
|
@ -17,7 +17,6 @@ jobs:
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- macOS-latest
|
- macOS-latest
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
# https://github.com/actions/checkout
|
# https://github.com/actions/checkout
|
||||||
|
|
|
@ -14,7 +14,7 @@ If you are interested, [check out](https://git.io/Je09Y) my other :octocat: GitH
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Works on Linux, MacOS and Windows [virtual environments](https://help.github.com/en/articles/virtual-environments-for-github-actions#supported-virtual-environments-and-hardware-resources)
|
* Works on Linux and MacOS [virtual environments](https://help.github.com/en/articles/virtual-environments-for-github-actions#supported-virtual-environments-and-hardware-resources)
|
||||||
* Allow to seed the internal cache of `gpg-agent` with provided passphrase
|
* Allow to seed the internal cache of `gpg-agent` with provided passphrase
|
||||||
* Purge imported GPG key and cache information from runner (security)
|
* Purge imported GPG key and cache information from runner (security)
|
||||||
|
|
||||||
|
|
330
dist/index.js
generated
vendored
330
dist/index.js
generated
vendored
|
@ -987,54 +987,6 @@ if (!exports.IsPost) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 197:
|
|
||||||
/***/ (function(module, __unusedexports, __webpack_require__) {
|
|
||||||
|
|
||||||
module.exports = isexe
|
|
||||||
isexe.sync = sync
|
|
||||||
|
|
||||||
var fs = __webpack_require__(747)
|
|
||||||
|
|
||||||
function isexe (path, options, cb) {
|
|
||||||
fs.stat(path, function (er, stat) {
|
|
||||||
cb(er, er ? false : checkStat(stat, options))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function sync (path, options) {
|
|
||||||
return checkStat(fs.statSync(path), options)
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkStat (stat, options) {
|
|
||||||
return stat.isFile() && checkMode(stat, options)
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkMode (stat, options) {
|
|
||||||
var mod = stat.mode
|
|
||||||
var uid = stat.uid
|
|
||||||
var gid = stat.gid
|
|
||||||
|
|
||||||
var myUid = options.uid !== undefined ?
|
|
||||||
options.uid : process.getuid && process.getuid()
|
|
||||||
var myGid = options.gid !== undefined ?
|
|
||||||
options.gid : process.getgid && process.getgid()
|
|
||||||
|
|
||||||
var u = parseInt('100', 8)
|
|
||||||
var g = parseInt('010', 8)
|
|
||||||
var o = parseInt('001', 8)
|
|
||||||
var ug = u | g
|
|
||||||
|
|
||||||
var ret = (mod & o) ||
|
|
||||||
(mod & g) && gid === myGid ||
|
|
||||||
(mod & u) && uid === myUid ||
|
|
||||||
(mod & ug) && myUid === 0
|
|
||||||
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 198:
|
/***/ 198:
|
||||||
|
@ -1058,15 +1010,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
result["default"] = mod;
|
result["default"] = mod;
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(__webpack_require__(470));
|
const core = __importStar(__webpack_require__(470));
|
||||||
const gpg = __importStar(__webpack_require__(207));
|
const gpg = __importStar(__webpack_require__(207));
|
||||||
const openpgp = __importStar(__webpack_require__(781));
|
const openpgp = __importStar(__webpack_require__(781));
|
||||||
const stateHelper = __importStar(__webpack_require__(153));
|
const stateHelper = __importStar(__webpack_require__(153));
|
||||||
const exec = __importStar(__webpack_require__(986));
|
const exec = __importStar(__webpack_require__(986));
|
||||||
|
const os_1 = __importDefault(__webpack_require__(87));
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
|
if (os_1.default.platform() == 'win32') {
|
||||||
|
core.setFailed('Windows platform not supported');
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!process.env.SIGNING_KEY) {
|
if (!process.env.SIGNING_KEY) {
|
||||||
core.setFailed('Signing key required');
|
core.setFailed('Signing key required');
|
||||||
return;
|
return;
|
||||||
|
@ -1156,50 +1116,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
result["default"] = mod;
|
result["default"] = mod;
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const fs = __importStar(__webpack_require__(747));
|
const fs = __importStar(__webpack_require__(747));
|
||||||
const path = __importStar(__webpack_require__(622));
|
const path = __importStar(__webpack_require__(622));
|
||||||
const os = __importStar(__webpack_require__(87));
|
const os = __importStar(__webpack_require__(87));
|
||||||
const exec = __importStar(__webpack_require__(807));
|
const exec = __importStar(__webpack_require__(807));
|
||||||
const which_1 = __importDefault(__webpack_require__(814));
|
|
||||||
exports.agentConfig = `default-cache-ttl 7200
|
exports.agentConfig = `default-cache-ttl 7200
|
||||||
max-cache-ttl 31536000
|
max-cache-ttl 31536000
|
||||||
allow-preset-passphrase`;
|
allow-preset-passphrase`;
|
||||||
const getGpgPresetPassphrasePath = () => __awaiter(void 0, void 0, void 0, function* () {
|
const getGpgPresetPassphrasePath = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||||
let gpgPresetPassphrasePath;
|
|
||||||
gpgPresetPassphrasePath = yield which_1.default('gpg-preset-passphrase').then(resolvedPath => {
|
|
||||||
return resolvedPath;
|
|
||||||
});
|
|
||||||
if (gpgPresetPassphrasePath != '') {
|
|
||||||
return gpgPresetPassphrasePath;
|
|
||||||
}
|
|
||||||
const { libexecdir: libexecdir } = yield exports.getDirs();
|
const { libexecdir: libexecdir } = yield exports.getDirs();
|
||||||
gpgPresetPassphrasePath = path.join(libexecdir, 'gpg-preset-passphrase');
|
let gpgPresetPassphrasePath = path.join(libexecdir, 'gpg-preset-passphrase');
|
||||||
if (yield fs.existsSync(gpgPresetPassphrasePath)) {
|
if (yield fs.existsSync(gpgPresetPassphrasePath)) {
|
||||||
return gpgPresetPassphrasePath;
|
return gpgPresetPassphrasePath;
|
||||||
}
|
}
|
||||||
gpgPresetPassphrasePath = path.join(process.env.HOMEDRIVE || '', libexecdir, 'gpg-preset-passphrase.exe');
|
return 'gpg-preset-passphrase';
|
||||||
if (yield fs.existsSync(gpgPresetPassphrasePath)) {
|
|
||||||
return gpgPresetPassphrasePath;
|
|
||||||
}
|
|
||||||
gpgPresetPassphrasePath = path.join(`C:\\Program Files\\Git`, libexecdir, 'gpg-preset-passphrase.exe');
|
|
||||||
if (yield fs.existsSync(gpgPresetPassphrasePath)) {
|
|
||||||
return gpgPresetPassphrasePath;
|
|
||||||
}
|
|
||||||
throw new Error('gpg-preset-passphrase not found');
|
|
||||||
});
|
});
|
||||||
const getGnupgHome = () => __awaiter(void 0, void 0, void 0, function* () {
|
const getGnupgHome = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||||
if (process.env.GNUPGHOME) {
|
if (process.env.GNUPGHOME) {
|
||||||
return process.env.GNUPGHOME;
|
return process.env.GNUPGHOME;
|
||||||
}
|
}
|
||||||
let homedir = path.join(process.env.HOME || '', '.gnupg');
|
return path.join(process.env.HOME || '', '.gnupg');
|
||||||
if (os.platform() == 'win32' && !process.env.HOME) {
|
|
||||||
homedir = path.join(process.env.USERPROFILE || '', '.gnupg');
|
|
||||||
}
|
|
||||||
return homedir;
|
|
||||||
});
|
});
|
||||||
exports.getVersion = () => __awaiter(void 0, void 0, void 0, function* () {
|
exports.getVersion = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||||
return yield exec.exec('gpg', ['--version'], true).then(res => {
|
return yield exec.exec('gpg', ['--version'], true).then(res => {
|
||||||
|
@ -45624,70 +45561,6 @@ exports.default = AsyncProxy;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 742:
|
|
||||||
/***/ (function(module, __unusedexports, __webpack_require__) {
|
|
||||||
|
|
||||||
var fs = __webpack_require__(747)
|
|
||||||
var core
|
|
||||||
if (process.platform === 'win32' || global.TESTING_WINDOWS) {
|
|
||||||
core = __webpack_require__(818)
|
|
||||||
} else {
|
|
||||||
core = __webpack_require__(197)
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = isexe
|
|
||||||
isexe.sync = sync
|
|
||||||
|
|
||||||
function isexe (path, options, cb) {
|
|
||||||
if (typeof options === 'function') {
|
|
||||||
cb = options
|
|
||||||
options = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!cb) {
|
|
||||||
if (typeof Promise !== 'function') {
|
|
||||||
throw new TypeError('callback not provided')
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
isexe(path, options || {}, function (er, is) {
|
|
||||||
if (er) {
|
|
||||||
reject(er)
|
|
||||||
} else {
|
|
||||||
resolve(is)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
core(path, options || {}, function (er, is) {
|
|
||||||
// ignore EACCES because that just means we aren't allowed to run it
|
|
||||||
if (er) {
|
|
||||||
if (er.code === 'EACCES' || options && options.ignoreErrors) {
|
|
||||||
er = null
|
|
||||||
is = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cb(er, is)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function sync (path, options) {
|
|
||||||
// my kingdom for a filtered catch
|
|
||||||
try {
|
|
||||||
return core.sync(path, options || {})
|
|
||||||
} catch (er) {
|
|
||||||
if (options && options.ignoreErrors || er.code === 'EACCES') {
|
|
||||||
return false
|
|
||||||
} else {
|
|
||||||
throw er
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 747:
|
/***/ 747:
|
||||||
|
@ -45799,187 +45672,6 @@ exports.exec = (command, args = [], silent) => __awaiter(void 0, void 0, void 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 814:
|
|
||||||
/***/ (function(module, __unusedexports, __webpack_require__) {
|
|
||||||
|
|
||||||
const isWindows = process.platform === 'win32' ||
|
|
||||||
process.env.OSTYPE === 'cygwin' ||
|
|
||||||
process.env.OSTYPE === 'msys'
|
|
||||||
|
|
||||||
const path = __webpack_require__(622)
|
|
||||||
const COLON = isWindows ? ';' : ':'
|
|
||||||
const isexe = __webpack_require__(742)
|
|
||||||
|
|
||||||
const getNotFoundError = (cmd) =>
|
|
||||||
Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
|
|
||||||
|
|
||||||
const getPathInfo = (cmd, opt) => {
|
|
||||||
const colon = opt.colon || COLON
|
|
||||||
|
|
||||||
// If it has a slash, then we don't bother searching the pathenv.
|
|
||||||
// just check the file itself, and that's it.
|
|
||||||
const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
|
|
||||||
: (
|
|
||||||
[
|
|
||||||
// windows always checks the cwd first
|
|
||||||
...(isWindows ? [process.cwd()] : []),
|
|
||||||
...(opt.path || process.env.PATH ||
|
|
||||||
/* istanbul ignore next: very unusual */ '').split(colon),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
const pathExtExe = isWindows
|
|
||||||
? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
|
|
||||||
: ''
|
|
||||||
const pathExt = isWindows ? pathExtExe.split(colon) : ['']
|
|
||||||
|
|
||||||
if (isWindows) {
|
|
||||||
if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
|
|
||||||
pathExt.unshift('')
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
pathEnv,
|
|
||||||
pathExt,
|
|
||||||
pathExtExe,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const which = (cmd, opt, cb) => {
|
|
||||||
if (typeof opt === 'function') {
|
|
||||||
cb = opt
|
|
||||||
opt = {}
|
|
||||||
}
|
|
||||||
if (!opt)
|
|
||||||
opt = {}
|
|
||||||
|
|
||||||
const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
|
|
||||||
const found = []
|
|
||||||
|
|
||||||
const step = i => new Promise((resolve, reject) => {
|
|
||||||
if (i === pathEnv.length)
|
|
||||||
return opt.all && found.length ? resolve(found)
|
|
||||||
: reject(getNotFoundError(cmd))
|
|
||||||
|
|
||||||
const ppRaw = pathEnv[i]
|
|
||||||
const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
|
|
||||||
|
|
||||||
const pCmd = path.join(pathPart, cmd)
|
|
||||||
const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
|
|
||||||
: pCmd
|
|
||||||
|
|
||||||
resolve(subStep(p, i, 0))
|
|
||||||
})
|
|
||||||
|
|
||||||
const subStep = (p, i, ii) => new Promise((resolve, reject) => {
|
|
||||||
if (ii === pathExt.length)
|
|
||||||
return resolve(step(i + 1))
|
|
||||||
const ext = pathExt[ii]
|
|
||||||
isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
|
|
||||||
if (!er && is) {
|
|
||||||
if (opt.all)
|
|
||||||
found.push(p + ext)
|
|
||||||
else
|
|
||||||
return resolve(p + ext)
|
|
||||||
}
|
|
||||||
return resolve(subStep(p, i, ii + 1))
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
return cb ? step(0).then(res => cb(null, res), cb) : step(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
const whichSync = (cmd, opt) => {
|
|
||||||
opt = opt || {}
|
|
||||||
|
|
||||||
const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
|
|
||||||
const found = []
|
|
||||||
|
|
||||||
for (let i = 0; i < pathEnv.length; i ++) {
|
|
||||||
const ppRaw = pathEnv[i]
|
|
||||||
const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
|
|
||||||
|
|
||||||
const pCmd = path.join(pathPart, cmd)
|
|
||||||
const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
|
|
||||||
: pCmd
|
|
||||||
|
|
||||||
for (let j = 0; j < pathExt.length; j ++) {
|
|
||||||
const cur = p + pathExt[j]
|
|
||||||
try {
|
|
||||||
const is = isexe.sync(cur, { pathExt: pathExtExe })
|
|
||||||
if (is) {
|
|
||||||
if (opt.all)
|
|
||||||
found.push(cur)
|
|
||||||
else
|
|
||||||
return cur
|
|
||||||
}
|
|
||||||
} catch (ex) {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (opt.all && found.length)
|
|
||||||
return found
|
|
||||||
|
|
||||||
if (opt.nothrow)
|
|
||||||
return null
|
|
||||||
|
|
||||||
throw getNotFoundError(cmd)
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = which
|
|
||||||
which.sync = whichSync
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 818:
|
|
||||||
/***/ (function(module, __unusedexports, __webpack_require__) {
|
|
||||||
|
|
||||||
module.exports = isexe
|
|
||||||
isexe.sync = sync
|
|
||||||
|
|
||||||
var fs = __webpack_require__(747)
|
|
||||||
|
|
||||||
function checkPathExt (path, options) {
|
|
||||||
var pathext = options.pathExt !== undefined ?
|
|
||||||
options.pathExt : process.env.PATHEXT
|
|
||||||
|
|
||||||
if (!pathext) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
pathext = pathext.split(';')
|
|
||||||
if (pathext.indexOf('') !== -1) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
for (var i = 0; i < pathext.length; i++) {
|
|
||||||
var p = pathext[i].toLowerCase()
|
|
||||||
if (p && path.substr(-p.length).toLowerCase() === p) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkStat (stat, path, options) {
|
|
||||||
if (!stat.isSymbolicLink() && !stat.isFile()) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return checkPathExt(path, options)
|
|
||||||
}
|
|
||||||
|
|
||||||
function isexe (path, options, cb) {
|
|
||||||
fs.stat(path, function (er, stat) {
|
|
||||||
cb(er, er ? false : checkStat(stat, path, options))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function sync (path, options) {
|
|
||||||
return checkStat(fs.statSync(path), path, options)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 986:
|
/***/ 986:
|
||||||
|
|
|
@ -25,14 +25,12 @@
|
||||||
"@actions/core": "^1.2.3",
|
"@actions/core": "^1.2.3",
|
||||||
"@actions/exec": "^1.0.4",
|
"@actions/exec": "^1.0.4",
|
||||||
"@actions/github": "^2.1.1",
|
"@actions/github": "^2.1.1",
|
||||||
"openpgp": "^4.10.4",
|
"openpgp": "^4.10.4"
|
||||||
"which": "^2.0.2"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^25.2.1",
|
"@types/jest": "^25.2.1",
|
||||||
"@types/node": "^13.13.4",
|
"@types/node": "^13.13.4",
|
||||||
"@types/openpgp": "^4.4.10",
|
"@types/openpgp": "^4.4.10",
|
||||||
"@types/which": "^1.3.2",
|
|
||||||
"@zeit/ncc": "^0.22.1",
|
"@zeit/ncc": "^0.22.1",
|
||||||
"jest": "^25.5.4",
|
"jest": "^25.5.4",
|
||||||
"jest-circus": "^25.5.4",
|
"jest-circus": "^25.5.4",
|
||||||
|
|
31
src/gpg.ts
31
src/gpg.ts
|
@ -2,7 +2,6 @@ import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as os from 'os';
|
import * as os from 'os';
|
||||||
import * as exec from './exec';
|
import * as exec from './exec';
|
||||||
import which from 'which';
|
|
||||||
|
|
||||||
export const agentConfig = `default-cache-ttl 7200
|
export const agentConfig = `default-cache-ttl 7200
|
||||||
max-cache-ttl 31536000
|
max-cache-ttl 31536000
|
||||||
|
@ -21,43 +20,19 @@ export interface Dirs {
|
||||||
}
|
}
|
||||||
|
|
||||||
const getGpgPresetPassphrasePath = async (): Promise<string> => {
|
const getGpgPresetPassphrasePath = async (): Promise<string> => {
|
||||||
let gpgPresetPassphrasePath: string;
|
|
||||||
|
|
||||||
gpgPresetPassphrasePath = await which('gpg-preset-passphrase').then(resolvedPath => {
|
|
||||||
return resolvedPath;
|
|
||||||
});
|
|
||||||
if (gpgPresetPassphrasePath != '') {
|
|
||||||
return gpgPresetPassphrasePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
const {libexecdir: libexecdir} = await getDirs();
|
const {libexecdir: libexecdir} = await getDirs();
|
||||||
gpgPresetPassphrasePath = path.join(libexecdir, 'gpg-preset-passphrase');
|
let gpgPresetPassphrasePath = path.join(libexecdir, 'gpg-preset-passphrase');
|
||||||
if (await fs.existsSync(gpgPresetPassphrasePath)) {
|
if (await fs.existsSync(gpgPresetPassphrasePath)) {
|
||||||
return gpgPresetPassphrasePath;
|
return gpgPresetPassphrasePath;
|
||||||
}
|
}
|
||||||
|
return 'gpg-preset-passphrase';
|
||||||
gpgPresetPassphrasePath = path.join(process.env.HOMEDRIVE || '', libexecdir, 'gpg-preset-passphrase.exe');
|
|
||||||
if (await fs.existsSync(gpgPresetPassphrasePath)) {
|
|
||||||
return gpgPresetPassphrasePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
gpgPresetPassphrasePath = path.join(`C:\\Program Files\\Git`, libexecdir, 'gpg-preset-passphrase.exe');
|
|
||||||
if (await fs.existsSync(gpgPresetPassphrasePath)) {
|
|
||||||
return gpgPresetPassphrasePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new Error('gpg-preset-passphrase not found');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getGnupgHome = async (): Promise<string> => {
|
const getGnupgHome = async (): Promise<string> => {
|
||||||
if (process.env.GNUPGHOME) {
|
if (process.env.GNUPGHOME) {
|
||||||
return process.env.GNUPGHOME;
|
return process.env.GNUPGHOME;
|
||||||
}
|
}
|
||||||
let homedir: string = path.join(process.env.HOME || '', '.gnupg');
|
return path.join(process.env.HOME || '', '.gnupg');
|
||||||
if (os.platform() == 'win32' && !process.env.HOME) {
|
|
||||||
homedir = path.join(process.env.USERPROFILE || '', '.gnupg');
|
|
||||||
}
|
|
||||||
return homedir;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getVersion = async (): Promise<Version> => {
|
export const getVersion = async (): Promise<Version> => {
|
||||||
|
|
|
@ -3,9 +3,15 @@ import * as gpg from './gpg';
|
||||||
import * as openpgp from './openpgp';
|
import * as openpgp from './openpgp';
|
||||||
import * as stateHelper from './state-helper';
|
import * as stateHelper from './state-helper';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
|
import os from 'os';
|
||||||
|
|
||||||
async function run(): Promise<void> {
|
async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
|
if (os.platform() == 'win32') {
|
||||||
|
core.setFailed('Windows platform not supported');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!process.env.SIGNING_KEY) {
|
if (!process.env.SIGNING_KEY) {
|
||||||
core.setFailed('Signing key required');
|
core.setFailed('Signing key required');
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue