list package moves
This commit is contained in:
@@ -21,7 +21,7 @@ interface Actions {
|
||||
|
||||
interface Result {
|
||||
build: boolean;
|
||||
move: boolean;
|
||||
move: PackageInfo[];
|
||||
delete: PackageInfo[];
|
||||
actions: Actions;
|
||||
}
|
||||
@@ -57,7 +57,7 @@ async function parse(previous: PathLike, current: PathLike): Promise<Result> {
|
||||
const actions = curr?.actions;
|
||||
const result: Result = {
|
||||
build: false,
|
||||
move: false,
|
||||
move: [],
|
||||
delete: [],
|
||||
actions,
|
||||
};
|
||||
@@ -66,10 +66,9 @@ async function parse(previous: PathLike, current: PathLike): Promise<Result> {
|
||||
const repo: RepoContents = prev.repos[actions.removeRepo];
|
||||
result.delete.push(...parseRepoContents(repo, actions.removeRepo));
|
||||
}
|
||||
else if (prev && (result.move = isMove(actions))) {
|
||||
const moving = parseRepoContents(curr.repos[actions.addRepo], actions.removeRepo);
|
||||
else if (prev && isMove(actions)) {
|
||||
const moving = result.move = parseRepoContents(curr.repos[actions.addRepo], actions.removeRepo);
|
||||
result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), moving));
|
||||
result.delete.push(...moving);
|
||||
}
|
||||
else if ((result.build = isAdd(actions)) && prev) {
|
||||
result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), parseRepoContents(curr.repos[actions.addRepo], actions.addRepo)));
|
||||
@@ -115,5 +114,5 @@ async function tryRead(file: PathLike): Promise<PkgBase | null> {
|
||||
}
|
||||
}
|
||||
|
||||
export { parse };
|
||||
export { parse, tryRead };
|
||||
export type { Actions, Result, RepoContents, PkgBase, PackageInfo };
|
||||
|
||||
@@ -6,7 +6,7 @@ describe('pkgbase parser', () => {
|
||||
it('can detect an add operation', async () => {
|
||||
const expected: Result = {
|
||||
build: true,
|
||||
move: false,
|
||||
move: [],
|
||||
delete: [],
|
||||
actions: {
|
||||
addRepo: 'system-goblins',
|
||||
@@ -25,7 +25,7 @@ describe('pkgbase parser', () => {
|
||||
it('can detect an add operation on a new repo', async () => {
|
||||
const expected: Result = {
|
||||
build: true,
|
||||
move: false,
|
||||
move: [],
|
||||
delete: [],
|
||||
actions: {
|
||||
addRepo: 'world',
|
||||
@@ -44,7 +44,7 @@ describe('pkgbase parser', () => {
|
||||
it('can remove dangling packages in an add operation', async () => {
|
||||
const expected: Result = {
|
||||
build: true,
|
||||
move: false,
|
||||
move: [],
|
||||
delete: [
|
||||
{
|
||||
architecture: "x86_64",
|
||||
@@ -70,13 +70,15 @@ describe('pkgbase parser', () => {
|
||||
it('can detect a move operation', async () => {
|
||||
const expected: Result = {
|
||||
build: false,
|
||||
move: true,
|
||||
delete: [{
|
||||
architecture: "x86_64",
|
||||
package: "opencascade",
|
||||
repository: "world-gremlins",
|
||||
version: "1:7.9.2-1",
|
||||
}],
|
||||
move: [
|
||||
{
|
||||
architecture: "x86_64",
|
||||
package: "opencascade",
|
||||
repository: "world-gremlins",
|
||||
version: "1:7.9.2-1",
|
||||
}
|
||||
],
|
||||
delete: [],
|
||||
actions: {
|
||||
addRepo: 'world',
|
||||
removeRepo: 'world-gremlins',
|
||||
@@ -94,14 +96,7 @@ describe('pkgbase parser', () => {
|
||||
it('can remove dangling packages in a move operation', async () => {
|
||||
const expected: Result = {
|
||||
build: false,
|
||||
move: true,
|
||||
delete: [
|
||||
{
|
||||
architecture: "x86_64",
|
||||
package: "pidgin",
|
||||
repository: "world",
|
||||
version: "2.14.14-3",
|
||||
},
|
||||
move: [
|
||||
{
|
||||
architecture: "x86_64",
|
||||
package: "libpurple",
|
||||
@@ -115,6 +110,14 @@ describe('pkgbase parser', () => {
|
||||
version: "2.14.14-4",
|
||||
}
|
||||
],
|
||||
delete: [
|
||||
{
|
||||
architecture: "x86_64",
|
||||
package: "pidgin",
|
||||
repository: "world",
|
||||
version: "2.14.14-3",
|
||||
}
|
||||
],
|
||||
actions: {
|
||||
addRepo: 'world',
|
||||
removeRepo: 'world-gremlins',
|
||||
@@ -132,7 +135,7 @@ describe('pkgbase parser', () => {
|
||||
it('can detect a delete operation', async () => {
|
||||
const expected: Result = {
|
||||
build: false,
|
||||
move: false,
|
||||
move: [],
|
||||
delete: [
|
||||
{
|
||||
architecture: "any",
|
||||
|
||||
Reference in New Issue
Block a user