1111import java .util .Scanner ;
1212
1313public class Main {
14+ static List <String > CMD_RPM_IMPORT = asList ("sudo" , "rpm" , "--import" );
15+ static List <String > CMD_DNF_INST_REPOS = asList ("sudo" , "dnf" , "install" , "-y" );
16+ static List <String > CMD_DNF_INST_PKGS = asList ("sudo" , "dnf" , "--refresh" , "install" , "-y" );
17+ static List <String > CMD_DNF_RM_PKGS = asList ("sudo" , "dnf" , "remove" , "-y" , "--noautoremove" );
18+ static List <String > CMD_DNF_MARK = asList ("sudo" , "dnf" , "mark" , "user" , "flatpak" );
19+ static List <String > CMD_DNF_AUTORM = asList ("sudo" , "dnf" , "autoremove" , "-y" );
20+ static List <String > CMD_FLATPAK_REMOTE_ADD = asList ("sudo" , "flatpak" , "remote-add" , "--if-not-exists" );
21+ static List <String > CMD_FLATPAK_INST = asList ("flatpak" , "install" , "-y" );
22+ static List <String > CMD_GETENT = asList ("getent" , "group" );
23+ static List <String > CMD_ADD_GROUP = asList ("sudo" , "groupadd" );
24+ static List <String > CMD_ADD_USER_TO_GROUP = asList ("sudo" , "usermod" , "-aG" );
25+ static List <String > CMD_SYSTEMCTL_ENABLE = asList ("sudo" , "systemctl" , "enable" , "--now" , "cockpit.socket" );
26+
1427 public static void main (String [] args ) {
1528 run (args , new PostInstallUpdater ());
1629 }
@@ -35,82 +48,50 @@ static void run(String[] args, PostInstallUpdater updater) {
3548
3649 if (confirm (scanner , "Install RPMFusion repos?" )) {
3750 for (String key : ConfigManager .getRPMFusionGpgKeys ()) {
38- updater .runCommand (new String []{ "sudo" , "rpm" , "--import" , key } );
51+ updater .runCommand (CMD_RPM_IMPORT , asList ( key ) );
3952 }
4053
4154 List <String > repos = ConfigManager .getRPMFusionRepos ();
42- String [] cmd = new String [repos .size () + 4 ];
43- cmd [0 ] = "sudo" ;
44- cmd [1 ] = "dnf" ;
45- cmd [2 ] = "install" ;
46- cmd [3 ] = "-y" ;
47- for (int i = 0 ; i < repos .size (); i ++) {
48- cmd [4 + i ] = repos .get (i );
49- }
50- updater .runCommand (cmd );
55+ updater .runCommand (CMD_DNF_INST_REPOS , repos );
5156 }
5257
5358 if (confirm (scanner , "Install additional packages with DNF?" )) {
5459 List <String > filtered = promptForExclusions (dnfInstallPackages , scanner );
55- String [] cmd = new String [filtered .size () + 5 ];
56- cmd [0 ] = "sudo" ;
57- cmd [1 ] = "dnf" ;
58- cmd [2 ] = "--refresh" ;
59- cmd [3 ] = "install" ;
60- cmd [4 ] = "-y" ;
61- for (int i = 0 ; i < filtered .size (); i ++) {
62- cmd [5 + i ] = filtered .get (i );
63- }
64- updater .runCommand (cmd );
60+ updater .runCommand (CMD_DNF_INST_PKGS , filtered );
6561 }
6662
6763 if (confirm (scanner , "Remove all DNF packages marked for removal?" )) {
6864 List <String > filtered = promptForExclusions (dnfRemovePackages , scanner );
69- String [] cmd = new String [filtered .size () + 5 ];
70- cmd [0 ] = "sudo" ;
71- cmd [1 ] = "dnf" ;
72- cmd [2 ] = "remove" ;
73- cmd [3 ] = "-y" ;
74- cmd [4 ] = "--noautoremove" ;
75- for (int i = 0 ; i < filtered .size (); i ++) {
76- cmd [5 + i ] = filtered .get (i );
77- }
78- updater .runCommand (cmd );
79- updater .runCommand (new String []{"sudo" , "dnf" , "mark" , "user" , "flatpak" });
80- updater .runCommand (new String []{"sudo" , "dnf" , "autoremove" , "-y" });
65+ updater .runCommand (CMD_DNF_RM_PKGS , filtered );
66+ updater .runCommand (CMD_DNF_MARK , asList ());
67+ updater .runCommand (CMD_DNF_AUTORM , asList ());
8168 }
8269
8370 if (confirm (scanner , "Install Flatpak apps?" )) {
8471 String name = ConfigManager .getFlatpakRemoteName ();
8572 String url = ConfigManager .getFlatpakRemoteUrl ();
86- updater .runCommand (new String []{"sudo" , "flatpak" , "remote-add" , "--if-not-exists" , name , url });
73+ updater .runCommand (CMD_FLATPAK_REMOTE_ADD , asList (name , url ));
74+
8775 List <String > filtered = promptForExclusions (flatpakInstallPackages , scanner );
88- String [] cmd = new String [filtered .size () + 4 ];
89- cmd [0 ] = "flatpak" ;
90- cmd [1 ] = "install" ;
91- cmd [2 ] = "-y" ;
92- cmd [3 ] = name ;
93- for (int i = 0 ; i < filtered .size (); i ++) {
94- cmd [4 + i ] = filtered .get (i );
95- }
96- updater .runCommand (cmd );
76+ filtered .addFirst (name );
77+ updater .runCommand (CMD_FLATPAK_INST , filtered );
9778 }
9879
9980 if (confirm (scanner , "Ensure admin groups exist and add current user to them?" )) {
10081 String user = System .getProperty ("user.name" );
10182 for (String group : ConfigManager .getAdminGroups ()) {
102- int exit = updater .runCommand (new String []{ "getent" , " group" , group } );
83+ int exit = updater .runCommand (CMD_GETENT , asList ( group ) );
10384 boolean groupExists = (exit == 0 );
10485 if (!groupExists ) {
10586 System .out .println ("Group '" + group + "' does not exist. Creating..." );
106- updater .runCommand (new String []{ "sudo" , "groupadd" , group } );
87+ updater .runCommand (CMD_ADD_GROUP , asList ( group ) );
10788 }
108- updater .runCommand (new String []{ "sudo" , "usermod" , "-aG" , group , user } );
89+ updater .runCommand (CMD_ADD_USER_TO_GROUP , asList ( group , user ) );
10990 }
11091 }
11192
11293 if (confirm (scanner , "Enable and start cockpit.socket service?" )) {
113- updater .runCommand (new String []{ "sudo" , "systemctl" , "enable" , "--now" , "cockpit.socket" } );
94+ updater .runCommand (CMD_SYSTEMCTL_ENABLE , asList () );
11495 }
11596
11697 System .out .println (color ("\n .o0×X×0o. All actions completed. Goodbye. .o0×X×0o." , GREEN ));
0 commit comments