From 109db011ae01358d2f1cffd6649075050c9d6f71 Mon Sep 17 00:00:00 2001 From: by-su Date: Thu, 9 Jan 2025 22:39:07 +0900 Subject: [PATCH 1/4] fix: suppress progress output for crowdin file download with --no-progress --- .../java/com/crowdin/cli/commands/Actions.java | 4 ++++ .../crowdin/cli/commands/actions/CliActions.java | 14 ++++++++++++-- .../cli/commands/actions/FileDownloadAction.java | 5 +++-- .../actions/FileDownloadTranslationAction.java | 7 ++++--- .../commands/picocli/FileDownloadSubcommand.java | 4 ++-- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/crowdin/cli/commands/Actions.java b/src/main/java/com/crowdin/cli/commands/Actions.java index 4a397e922..a5a731d34 100644 --- a/src/main/java/com/crowdin/cli/commands/Actions.java +++ b/src/main/java/com/crowdin/cli/commands/Actions.java @@ -142,8 +142,12 @@ NewAction preTranslate( NewAction fileDownload(String file, String branch, String destParam); + NewAction fileDownload(String file, String branch, boolean noProgress, String destParam); + NewAction fileDownloadTranslation(String file, String languageId, String branch, String destParam); + NewAction fileDownloadTranslation(String file, String languageId, String branch, boolean noProgress, String destParam); + NewAction fileDelete(String file, String branch); NewAction projectBrowse(); diff --git a/src/main/java/com/crowdin/cli/commands/actions/CliActions.java b/src/main/java/com/crowdin/cli/commands/actions/CliActions.java index c964abe10..6809c7ca4 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/CliActions.java +++ b/src/main/java/com/crowdin/cli/commands/actions/CliActions.java @@ -300,12 +300,22 @@ public NewAction fileUploadTranslation(File fi @Override public NewAction fileDownload(String file, String branch, String destParam) { - return new FileDownloadAction(file, branch, destParam); + return new FileDownloadAction(file, branch, false, destParam); + } + + @Override + public NewAction fileDownload(String file, String branch, boolean noProgress, String destParam) { + return new FileDownloadAction(file, branch, noProgress, destParam); } @Override public NewAction fileDownloadTranslation(String file, String languageId, String branch, String destParam) { - return new FileDownloadTranslationAction(file, languageId, branch, destParam); + return new FileDownloadTranslationAction(file, languageId, branch, false, destParam); + } + + @Override + public NewAction fileDownloadTranslation(String file, String languageId, String branch, boolean noProgress, String destParam) { + return new FileDownloadTranslationAction(file, languageId, branch, noProgress, destParam); } @Override diff --git a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java index 34bc6a157..4a426544c 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java +++ b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java @@ -29,13 +29,14 @@ class FileDownloadAction implements NewAction private final String file; private final String branch; + private final boolean noProgress; private final String dest; @Override public void act(Outputter out, ProjectProperties properties, ProjectClient client) { CrowdinProjectFull project = ConsoleSpinner .execute(out, "message.spinner.fetching_project_info", "error.collect_project_info", - false, false, () -> client.downloadFullProject(branch)); + noProgress, false, () -> client.downloadFullProject(branch)); boolean isStringsBasedProject = Objects.equals(project.getType(), Type.STRINGS_BASED); if (isStringsBasedProject) { out.println(WARNING.withIcon(RESOURCE_BUNDLE.getString("message.no_file_string_project"))); @@ -56,7 +57,7 @@ public void act(Outputter out, ProjectProperties properties, ProjectClient clien out, "message.spinner.downloading_file", "error.downloading_file", - false, + noProgress, false, () -> { URL url = client.downloadFile(foundFile.getId()); diff --git a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java index b42bf07af..71b54510e 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java +++ b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java @@ -36,13 +36,14 @@ public class FileDownloadTranslationAction implements NewAction client.buildProjectFileTranslation(sourceFileInfo.getId(), request) ); @@ -99,7 +100,7 @@ private void saveToFile(String destPath, URL url, Outputter out) { out, "message.spinner.downloading_translation", "error.write_file", - false, + noProgress, false, () -> { FilesInterface files = new FsFiles(); diff --git a/src/main/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommand.java b/src/main/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommand.java index 911f57ba1..9378eeff0 100644 --- a/src/main/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommand.java +++ b/src/main/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommand.java @@ -31,7 +31,7 @@ class FileDownloadSubcommand extends ActCommandProject { @Override protected NewAction getAction(Actions actions) { if (Objects.nonNull(languageId)) - return actions.fileDownloadTranslation(file, languageId, branch, destination); - return actions.fileDownload(file, branch, destination); + return actions.fileDownloadTranslation(file, languageId, branch, noProgress, destination); + return actions.fileDownload(file, branch, noProgress, destination); } } From 1393373950655d34e66fcc689851c92c9fad9cba Mon Sep 17 00:00:00 2001 From: by-su Date: Sun, 12 Jan 2025 15:49:41 +0900 Subject: [PATCH 2/4] refactor: replace old method with new method accepting noProgress --- src/main/java/com/crowdin/cli/commands/Actions.java | 4 ---- .../com/crowdin/cli/commands/actions/CliActions.java | 10 ---------- 2 files changed, 14 deletions(-) diff --git a/src/main/java/com/crowdin/cli/commands/Actions.java b/src/main/java/com/crowdin/cli/commands/Actions.java index a5a731d34..35272203d 100644 --- a/src/main/java/com/crowdin/cli/commands/Actions.java +++ b/src/main/java/com/crowdin/cli/commands/Actions.java @@ -140,12 +140,8 @@ NewAction preTranslate( NewAction fileUploadTranslation(File file, String branch, String dest, String languageId, boolean plainView); - NewAction fileDownload(String file, String branch, String destParam); - NewAction fileDownload(String file, String branch, boolean noProgress, String destParam); - NewAction fileDownloadTranslation(String file, String languageId, String branch, String destParam); - NewAction fileDownloadTranslation(String file, String languageId, String branch, boolean noProgress, String destParam); NewAction fileDelete(String file, String branch); diff --git a/src/main/java/com/crowdin/cli/commands/actions/CliActions.java b/src/main/java/com/crowdin/cli/commands/actions/CliActions.java index 6809c7ca4..1c01c3d9b 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/CliActions.java +++ b/src/main/java/com/crowdin/cli/commands/actions/CliActions.java @@ -298,21 +298,11 @@ public NewAction fileUploadTranslation(File fi return new FileUploadTranslationAction(file, branch, dest, languageId, plainView); } - @Override - public NewAction fileDownload(String file, String branch, String destParam) { - return new FileDownloadAction(file, branch, false, destParam); - } - @Override public NewAction fileDownload(String file, String branch, boolean noProgress, String destParam) { return new FileDownloadAction(file, branch, noProgress, destParam); } - @Override - public NewAction fileDownloadTranslation(String file, String languageId, String branch, String destParam) { - return new FileDownloadTranslationAction(file, languageId, branch, false, destParam); - } - @Override public NewAction fileDownloadTranslation(String file, String languageId, String branch, boolean noProgress, String destParam) { return new FileDownloadTranslationAction(file, languageId, branch, noProgress, destParam); From 37e1a8c26eb87c9df8a1795c46aaa3e1b342510a Mon Sep 17 00:00:00 2001 From: by-su Date: Sun, 12 Jan 2025 16:01:27 +0900 Subject: [PATCH 3/4] refactor: replace old method with new method accepting noProgress --- .../crowdin/cli/commands/actions/FileDownloadAction.java | 8 ++++++++ .../com/crowdin/cli/commands/actions/CliActionsTest.java | 4 ++-- .../cli/commands/actions/FileDownloadActionTest.java | 4 ++-- .../actions/FileDownloadTranslationActionTest.java | 8 ++++---- .../cli/commands/picocli/FileDownloadSubcommandTest.java | 4 ++-- .../crowdin/cli/commands/picocli/PicocliTestUtils.java | 4 ++-- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java index 4a426544c..5ad1fb9cb 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java +++ b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java @@ -32,6 +32,14 @@ class FileDownloadAction implements NewAction private final boolean noProgress; private final String dest; + public FileDownloadAction(String file, String branch, String dest) { + this.file = file; + this.branch = branch; + this.noProgress = false; + this.dest = dest; + } + + @Override public void act(Outputter out, ProjectProperties properties, ProjectClient client) { CrowdinProjectFull project = ConsoleSpinner diff --git a/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java b/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java index b0eff0922..db821afe6 100644 --- a/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java +++ b/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java @@ -174,12 +174,12 @@ void testFileUploadTranslation() { @Test void testFileDownload() { - assertNotNull(actions.fileDownload(null, null, null)); + assertNotNull(actions.fileDownload(null, null, false, null)); } @Test void testFileDownloadTranslation() { - assertNotNull(actions.fileDownloadTranslation(null, null,null, null)); + assertNotNull(actions.fileDownloadTranslation(null, null,null, false,null)); } @Test diff --git a/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java b/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java index 723a1c4f0..d8d7495e2 100644 --- a/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java +++ b/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java @@ -54,7 +54,7 @@ public void testDownload() { when(client.downloadFile(eq(101L))) .thenReturn(urlMock); - NewAction action = new FileDownloadAction("first.po", null, "dest"); + NewAction action = new FileDownloadAction("first.po", null, false,"dest"); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(any()); @@ -75,7 +75,7 @@ public void testDownload_StringBasedProject() { when(client.downloadFullProject(any())) .thenReturn(build); - NewAction action = new FileDownloadAction("first.po", "main", "dest"); + NewAction action = new FileDownloadAction("first.po", "main", false, "dest"); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(any()); diff --git a/src/test/java/com/crowdin/cli/commands/actions/FileDownloadTranslationActionTest.java b/src/test/java/com/crowdin/cli/commands/actions/FileDownloadTranslationActionTest.java index 7b3220ff1..b0642bbf6 100644 --- a/src/test/java/com/crowdin/cli/commands/actions/FileDownloadTranslationActionTest.java +++ b/src/test/java/com/crowdin/cli/commands/actions/FileDownloadTranslationActionTest.java @@ -58,7 +58,7 @@ public void testDownloadTranslation() { when(client.buildProjectFileTranslation(eq(101L), eq(request))) .thenReturn(urlMock); - NewAction action = new FileDownloadTranslationAction("first.po", "ua", null, null); + NewAction action = new FileDownloadTranslationAction("first.po", "ua", null, false, null); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(); @@ -86,7 +86,7 @@ public void testDownloadTranslationWithDest() { when(client.buildProjectFileTranslation(eq(101L), eq(request))) .thenReturn(urlMock); - NewAction action = new FileDownloadTranslationAction("first.po", "ua", null, "path/to/save"); + NewAction action = new FileDownloadTranslationAction("first.po", "ua", null, false, "path/to/save"); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(); @@ -108,7 +108,7 @@ public void testDownloadTranslation_StringBasedProject() { when(client.downloadFullProject()) .thenReturn(build); - NewAction action = new FileDownloadTranslationAction("first.po", "ua", null, "path/to/save"); + NewAction action = new FileDownloadTranslationAction("first.po", "ua", null, false, "path/to/save"); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(); @@ -137,7 +137,7 @@ public void testDownloadTranslation_AllLanguages() { when(client.buildProjectFileTranslation(eq(101L), any())) .thenReturn(urlMock); - NewAction action = new FileDownloadTranslationAction("first.po", "all", null, null); + NewAction action = new FileDownloadTranslationAction("first.po", "all", null, false, null); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(); diff --git a/src/test/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommandTest.java b/src/test/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommandTest.java index 368c11413..f058fd9a4 100644 --- a/src/test/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommandTest.java +++ b/src/test/java/com/crowdin/cli/commands/picocli/FileDownloadSubcommandTest.java @@ -10,14 +10,14 @@ class FileDownloadSubcommandTest extends PicocliTestUtils { @Test public void testFileDownload() { this.execute(CommandNames.FILE, CommandNames.FILE_DOWNLOAD, "file.txt"); - verify(actionsMock).fileDownload(any(), any(), any()); + verify(actionsMock).fileDownload(any(), any(), false, any()); this.check(true); } @Test public void testFileDownloadTranslations() { this.execute(CommandNames.FILE, CommandNames.FILE_DOWNLOAD, "file.txt", "--language", "uk"); - verify(actionsMock).fileDownloadTranslation(any(), any(), any(), any()); + verify(actionsMock).fileDownloadTranslation(any(), any(), any(), false, any()); this.check(true); } diff --git a/src/test/java/com/crowdin/cli/commands/picocli/PicocliTestUtils.java b/src/test/java/com/crowdin/cli/commands/picocli/PicocliTestUtils.java index 2ba108eb2..b34c2583f 100644 --- a/src/test/java/com/crowdin/cli/commands/picocli/PicocliTestUtils.java +++ b/src/test/java/com/crowdin/cli/commands/picocli/PicocliTestUtils.java @@ -124,9 +124,9 @@ void mockActions() { .thenReturn(actionMock); when(actionsMock.fileUploadTranslation(any(), any(), any(), any(), anyBoolean())) .thenReturn(actionMock); - when(actionsMock.fileDownload(any(), any(), any())) + when(actionsMock.fileDownload(any(), any(), anyBoolean(), any())) .thenReturn(actionMock); - when(actionsMock.fileDownloadTranslation(any(), any(), any(), any())) + when(actionsMock.fileDownloadTranslation(any(), any(), any(), anyBoolean(), any())) .thenReturn(actionMock); when(actionsMock.fileDelete(any(), any())) .thenReturn(actionMock); From 7a34c3124dac40c42f0f5a0f8f94bebb060f766a Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Wed, 15 Jan 2025 11:18:33 +0200 Subject: [PATCH 4/4] Apply suggestions from code review --- .../crowdin/cli/commands/actions/FileDownloadAction.java | 5 ++--- .../cli/commands/actions/FileDownloadTranslationAction.java | 6 +++--- .../com/crowdin/cli/commands/actions/CliActionsTest.java | 2 +- .../cli/commands/actions/FileDownloadActionTest.java | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java index 5ad1fb9cb..5dfd129f4 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java +++ b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadAction.java @@ -39,12 +39,11 @@ public FileDownloadAction(String file, String branch, String dest) { this.dest = dest; } - @Override public void act(Outputter out, ProjectProperties properties, ProjectClient client) { CrowdinProjectFull project = ConsoleSpinner .execute(out, "message.spinner.fetching_project_info", "error.collect_project_info", - noProgress, false, () -> client.downloadFullProject(branch)); + noProgress, false, () -> client.downloadFullProject(branch)); boolean isStringsBasedProject = Objects.equals(project.getType(), Type.STRINGS_BASED); if (isStringsBasedProject) { out.println(WARNING.withIcon(RESOURCE_BUNDLE.getString("message.no_file_string_project"))); @@ -65,7 +64,7 @@ public void act(Outputter out, ProjectProperties properties, ProjectClient clien out, "message.spinner.downloading_file", "error.downloading_file", - noProgress, + noProgress, false, () -> { URL url = client.downloadFile(foundFile.getId()); diff --git a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java index 71b54510e..36f760e8c 100644 --- a/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java +++ b/src/main/java/com/crowdin/cli/commands/actions/FileDownloadTranslationAction.java @@ -43,7 +43,7 @@ public class FileDownloadTranslationAction implements NewAction client.buildProjectFileTranslation(sourceFileInfo.getId(), request) ); @@ -100,7 +100,7 @@ private void saveToFile(String destPath, URL url, Outputter out) { out, "message.spinner.downloading_translation", "error.write_file", - noProgress, + noProgress, false, () -> { FilesInterface files = new FsFiles(); diff --git a/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java b/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java index db821afe6..bc3fe8c24 100644 --- a/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java +++ b/src/test/java/com/crowdin/cli/commands/actions/CliActionsTest.java @@ -179,7 +179,7 @@ void testFileDownload() { @Test void testFileDownloadTranslation() { - assertNotNull(actions.fileDownloadTranslation(null, null,null, false,null)); + assertNotNull(actions.fileDownloadTranslation(null, null,null, false, null)); } @Test diff --git a/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java b/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java index d8d7495e2..06b035953 100644 --- a/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java +++ b/src/test/java/com/crowdin/cli/commands/actions/FileDownloadActionTest.java @@ -54,7 +54,7 @@ public void testDownload() { when(client.downloadFile(eq(101L))) .thenReturn(urlMock); - NewAction action = new FileDownloadAction("first.po", null, false,"dest"); + NewAction action = new FileDownloadAction("first.po", null, false, "dest"); action.act(Outputter.getDefault(), pb, client); verify(client).downloadFullProject(any());