mirror of
https://github.com/egor-tensin/cleanup-path.git
synced 2025-05-01 00:59:32 +03:00

This is a huge step back IMO, but I needed to be able to restore the original PATH back as a "post" step. Currently, composite actions don't support post-actions, but JavaScript ones do. I needed this due to a bug: actions/cache wouldn't find Git's tar on windows-2016 (the one in System32 would get used on windows-2019) if the PATH was cleaned up.
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
const os = require('os');
|
|
const path = require('path');
|
|
const process = require('process');
|
|
|
|
const core = require('@actions/core');
|
|
|
|
try {
|
|
if (os.platform != 'win32') {
|
|
core.warning('Not going to clean up PATH variable on ${os.platform}');
|
|
process.exit();
|
|
}
|
|
|
|
let custom_paths = core.getInput('dirs');
|
|
custom_paths = custom_paths.split(path.delimiter).filter(function(p) {
|
|
return p.length != 0;
|
|
});
|
|
|
|
// This seems to be the default on new installations.
|
|
// Also, MSYS2 does this.
|
|
const default_paths = [
|
|
'C:\\Windows\\system32',
|
|
'C:\\Windows',
|
|
'C:\\Windows\\System32\\Wbem',
|
|
'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\',
|
|
];
|
|
|
|
const add_default = core.getInput('default') == '1';
|
|
|
|
let new_path = custom_paths;
|
|
if (add_default) {
|
|
new_path = new_path.concat(default_paths);
|
|
}
|
|
new_path = new_path.join(path.delimiter);
|
|
|
|
core.exportVariable('ORIG_PATH', process.env.PATH);
|
|
core.exportVariable('PATH', new_path);
|
|
} catch (error) {
|
|
core.setFailed(error.message);
|
|
}
|