Add script to compare local and remote scoop packages
This commit is contained in:
parent
fc62233d3f
commit
d2c5e8cdb9
26
ScoopCompare/ScoopCompare.js
Normal file
26
ScoopCompare/ScoopCompare.js
Normal file
@ -0,0 +1,26 @@
|
||||
// Run with node
|
||||
|
||||
// Read ~/scoop/apps.json and compare it to scoop export
|
||||
// Then display the differences in the installed apps and the apps.json file
|
||||
|
||||
// read apps.json file
|
||||
let fs = require('fs');
|
||||
let apps = fs.readFileSync('C:/Users/Isaac/scoop/apps.json', 'utf8');
|
||||
apps = JSON.parse(apps);
|
||||
apps = apps.apps;
|
||||
|
||||
// run scoop export in shell and save output to variable
|
||||
let { execSync } = require('child_process');
|
||||
let installedApps = execSync('scoop export').toString();
|
||||
installedApps = JSON.parse(installedApps);
|
||||
installedApps = installedApps.apps;
|
||||
|
||||
// Make a set out of each of the arrays on the Name property
|
||||
let appsSet = new Set(apps.map(app => app.Name));
|
||||
let installedAppsSet = new Set(installedApps.map(app => app.Name));
|
||||
|
||||
// Find the difference between the two sets
|
||||
let diffFromInstalledApps = new Set([...appsSet].filter(x => !installedAppsSet.has(x)));
|
||||
let diffFromApps = new Set([...installedAppsSet].filter(x => !appsSet.has(x)));
|
||||
console.log("Apps in apps.json but not installed: ", diffFromInstalledApps);
|
||||
console.log("Apps installed but not in apps.json: ", diffFromApps);
|
@ -1,13 +0,0 @@
|
||||
if ($args[0] -eq "freeze") {
|
||||
if (!$args[1]) {
|
||||
scoop export | Out-File -Encoding utf8 -FilePath $env:HOMEPATH\scoop_pkg.json
|
||||
} else {
|
||||
scoop export | Out-File -Encoding utf8 -FilePath $args[1]
|
||||
}
|
||||
} else {
|
||||
if (!$args[0]) {
|
||||
scoop import $env:HOMEPATH\scoop_pkg.json
|
||||
} else {
|
||||
scoop import $args[0]
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user