Skip to content

Commit 133841a

Browse files
committed
Move config to ConfigManager
1 parent 47754d9 commit 133841a

File tree

3 files changed

+69
-33
lines changed

3 files changed

+69
-33
lines changed

src/main/java/cf/maybelambda/fedora/ConfigManager.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,24 @@
1111

1212
public class ConfigManager {
1313
private static final String CONFIG_DIR = "src/main/resources";
14+
private static final String DNF_INSTALL_FILE = "dnf-install.cf";
15+
private static final String DNF_REMOVE_FILE = "dnf-remove.cf";
16+
private static final String FLATPAK_INSTALL_FILE = "flatpak-install.cf";
17+
private static final String HELP_FILE = "help.txt";
18+
19+
private static final List<String> gpgKeys = List.of(
20+
"https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020",
21+
"https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-fedora-2020"
22+
);
23+
private static final List<String> rpmFusionRepos = List.of(
24+
"https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-42.noarch.rpm",
25+
"https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-42.noarch.rpm"
26+
);
27+
28+
private static final String flatpakRemoteName = "flathub";
29+
private static final String flatpakRemoteUrl = "https://dl.flathub.org/repo/flathub.flatpakrepo";
30+
31+
private static final List<String> adminGroups = List.of("docker", "libvirt", "vboxsf", "vboxusers");
1432

1533
static List<String> readResourceLines(String filename) throws IOException {
1634
Path path = Path.of(CONFIG_DIR, filename);
@@ -39,4 +57,40 @@ static List<String> loadPackageNamesFrom(String filename) {
3957

4058
return packages;
4159
}
60+
61+
static List<String> getRPMFusionGpgKeys() {
62+
return gpgKeys;
63+
}
64+
65+
static List<String> getRPMFusionRepos() {
66+
return rpmFusionRepos;
67+
}
68+
69+
static String getFlatpakRemoteName() {
70+
return flatpakRemoteName;
71+
}
72+
73+
static String getFlatpakRemoteUrl() {
74+
return flatpakRemoteUrl;
75+
}
76+
77+
static List<String> getAdminGroups() {
78+
return adminGroups;
79+
}
80+
81+
static List<String> getDnfInstallPackages() {
82+
return loadPackageNamesFrom(DNF_INSTALL_FILE);
83+
}
84+
85+
static List<String> getDnfRemovePackages() {
86+
return loadPackageNamesFrom(DNF_REMOVE_FILE);
87+
}
88+
89+
static List<String> getFlatpakInstallPackages() {
90+
return loadPackageNamesFrom(FLATPAK_INSTALL_FILE);
91+
}
92+
93+
static List<String> getHelpText() throws IOException {
94+
return readResourceLines(HELP_FILE);
95+
}
4296
}

src/main/java/cf/maybelambda/fedora/PostInstallUpdater.java

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,6 @@
1313
import java.util.Set;
1414

1515
public class PostInstallUpdater {
16-
private static final List<String> gpgKeys = List.of(
17-
"https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020",
18-
"https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-fedora-2020"
19-
);
20-
private static final List<String> rpmfusionRepos = List.of(
21-
"https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-42.noarch.rpm",
22-
"https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-42.noarch.rpm"
23-
);
24-
25-
private static final String flatpakRemoteName = "flathub";
26-
private static final String flatpakRemoteUrl = "https://dl.flathub.org/repo/flathub.flatpakrepo";
27-
28-
private static final List<String> groupList = List.of(
29-
"docker", "libvirt", "vboxsf", "vboxusers"
30-
);
31-
32-
private static final String DNF_INSTALL_FILE = "dnf-install.cf";
33-
private static final String DNF_REMOVE_FILE = "dnf-remove.cf";
34-
private static final String FLATPAK_INSTALL_FILE = "flatpak-install.cf";
35-
private static final String HELP_FILE = "help.txt";
36-
3716
static final String RESET = "\u001B[0m";
3817
static final String YELLOW = "\u001B[33m";
3918
static final String GREEN = "\u001B[32m";
@@ -48,9 +27,9 @@ public static void main(String[] args) {
4827
return;
4928
}
5029

51-
List<String> dnfInstallPackages = ConfigManager.loadPackageNamesFrom(DNF_INSTALL_FILE);
52-
List<String> dnfRemovePackages = ConfigManager.loadPackageNamesFrom(DNF_REMOVE_FILE);
53-
List<String> flatpakInstallPackages = ConfigManager.loadPackageNamesFrom(FLATPAK_INSTALL_FILE);
30+
List<String> dnfInstallPackages = ConfigManager.getDnfInstallPackages();
31+
List<String> dnfRemovePackages = ConfigManager.getDnfRemovePackages();
32+
List<String> flatpakInstallPackages = ConfigManager.getFlatpakInstallPackages();
5433
Scanner scanner = new Scanner(System.in);
5534

5635
System.out.println(color("Fedora Post Install Actions\n", GREEN));
@@ -60,17 +39,18 @@ public static void main(String[] args) {
6039
}
6140

6241
if (confirm(scanner, "Install RPMFusion repos?")) {
63-
for (String key : gpgKeys) {
42+
for (String key : ConfigManager.getRPMFusionGpgKeys()) {
6443
runCommand(new String[]{"sudo", "rpm", "--import", key});
6544
}
6645

67-
String[] cmd = new String[rpmfusionRepos.size() + 4];
46+
List<String> repos = ConfigManager.getRPMFusionRepos();
47+
String[] cmd = new String[repos.size() + 4];
6848
cmd[0] = "sudo";
6949
cmd[1] = "dnf";
7050
cmd[2] = "install";
7151
cmd[3] = "-y";
72-
for (int i = 0; i < rpmfusionRepos.size(); i++) {
73-
cmd[4 + i] = rpmfusionRepos.get(i);
52+
for (int i = 0; i < repos.size(); i++) {
53+
cmd[4 + i] = repos.get(i);
7454
}
7555
runCommand(cmd);
7656
}
@@ -104,13 +84,15 @@ public static void main(String[] args) {
10484
}
10585

10686
if (confirm(scanner, "Install Flatpak apps?")) {
107-
runCommand(new String[]{"flatpak", "remote-add", "--if-not-exists", flatpakRemoteName, flatpakRemoteUrl});
87+
String name = ConfigManager.getFlatpakRemoteName();
88+
String url = ConfigManager.getFlatpakRemoteUrl();
89+
runCommand(new String[]{"flatpak", "remote-add", "--if-not-exists", name, url});
10890
List<String> filtered = promptForExclusions(flatpakInstallPackages, scanner);
10991
String[] cmd = new String[filtered.size() + 4];
11092
cmd[0] = "flatpak";
11193
cmd[1] = "install";
11294
cmd[2] = "-y";
113-
cmd[3] = flatpakRemoteName;
95+
cmd[3] = name;
11496
for (int i = 0; i < filtered.size(); i++) {
11597
cmd[4 + i] = filtered.get(i);
11698
}
@@ -119,7 +101,7 @@ public static void main(String[] args) {
119101

120102
if (confirm(scanner, "Ensure admin groups exist and add current user to them?")) {
121103
String user = System.getProperty("user.name");
122-
for (String group : groupList) {
104+
for (String group : ConfigManager.getAdminGroups()) {
123105
int exit = runCommand(new String[]{"getent", "group", group});
124106
boolean groupExists = (exit == 0);
125107
if (!groupExists) {
@@ -212,7 +194,7 @@ static List<String> promptForExclusions(List<String> packages, Scanner scanner)
212194

213195
static void printHelp() {
214196
try {
215-
List<String> lines = ConfigManager.readResourceLines(HELP_FILE);
197+
List<String> lines = ConfigManager.getHelpText();
216198
System.out.println(String.join(System.lineSeparator(), lines));
217199
} catch (IOException e) {
218200
System.err.println("Error reading help file: " + e.getMessage());

src/test/java/cf/maybelambda/fedora/PostInstallUpdaterTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void helpOptionDisplaysHelpTextAndExits() {
143143
PostInstallUpdater.main(new String[]{"--help"});
144144
PostInstallUpdater.main(new String[]{"-h"});
145145

146-
filesMock.verify(() -> ConfigManager.readResourceLines(any(String.class)), Mockito.times(2));
146+
filesMock.verify(() -> ConfigManager.getHelpText(), Mockito.times(2));
147147
}
148148
}
149149

0 commit comments

Comments
 (0)