Option to store built AUR packages in a custom directory

This commit is contained in:
matthiakl
2021-07-08 16:09:00 +02:00
parent 4dcfa3ff98
commit b518a15229
6 changed files with 143 additions and 20 deletions

View File

@@ -31,6 +31,8 @@ namespace Pamac {
public bool search_aur { get; private set; }
public string aur_build_dir { get; private set; }
public bool check_aur_updates { get; private set; }
public bool aur_keep_pkgs { get; private set; }
public string aur_move_dir { get; private set; }
#endif
public uint64 keep_num_pkgs { get; private set; }
public bool rm_only_uninstalled { get; private set; }
@@ -92,6 +94,8 @@ namespace Pamac {
search_aur = settings.get_boolean ("search-in-aur");
check_aur_updates = settings.get_boolean ("check-aur-updates");
aur_build_dir = settings.get_string ("build-directory");
aur_keep_pkgs = settings.get_boolean("aur-keep-pkgs");
aur_move_dir = settings.get_string("move-directory");
#endif
}
}

View File

@@ -65,6 +65,12 @@ namespace Pamac {
Gtk.FileChooserButton aur_build_dir_file_chooser;
[GtkChild]
Gtk.CheckButton check_aur_updates_checkbutton;
[GtkChild]
Gtk.Switch aur_keep_pkgs_button;
[GtkChild]
Gtk.Label aur_move_dir_label;
[GtkChild]
Gtk.FileChooserButton aur_move_dir_file_chooser;
#endif
[GtkChild]
Gtk.Label cache_keep_nb_label;
@@ -94,6 +100,7 @@ namespace Pamac {
stack.remove (aur_config_box);
#else
aur_build_dir_label.set_markup (dgettext (null, "Build directory") +":");
aur_move_dir_label.set_markup (dgettext (null, "Package directory") +":");
#endif
remove_unrequired_deps_button.active = transaction.recurse;
update_files_db_button.active = transaction.update_files_db;
@@ -193,6 +200,13 @@ namespace Pamac {
search_aur_checkbutton.toggled.connect (on_search_aur_checkbutton_toggled);
aur_build_dir_file_chooser.file_set.connect (on_aur_build_dir_set);
check_aur_updates_checkbutton.toggled.connect (on_check_aur_updates_checkbutton_toggled);
aur_keep_pkgs_button.sensitive = transaction.enable_aur;
aur_keep_pkgs_button.active = transaction.aur_keep_pkgs;
aur_keep_pkgs_button.state_set.connect(on_aur_keep_pkgs_button_state_set);
aur_move_dir_label.sensitive = transaction.enable_aur && transaction.aur_keep_pkgs;
aur_move_dir_file_chooser.sensitive = transaction.enable_aur && transaction.aur_keep_pkgs;
aur_move_dir_file_chooser.set_filename(transaction.aur_move_dir);
aur_move_dir_file_chooser.file_set.connect(on_aur_move_dir_set);
#endif
}
@@ -289,6 +303,14 @@ namespace Pamac {
transaction.start_save_pamac_config ();
return true;
}
bool on_aur_keep_pkgs_button_state_set (bool new_state) {
var settings = new Settings ("org.pamac.aur");
settings.set_boolean ("aur-keep-pkgs", new_state);
config_changed();
transaction.start_save_pamac_config ();
return true;
}
void on_search_aur_checkbutton_toggled () {
var settings = new Settings ("org.pamac.aur");
@@ -303,6 +325,13 @@ namespace Pamac {
config_changed();
transaction.start_save_pamac_config ();
}
void on_aur_move_dir_set () {
var settings = new Settings ("org.pamac.aur");
settings.set_string ("move-directory", aur_move_dir_file_chooser.get_filename ());
config_changed();
transaction.start_save_pamac_config ();
}
void on_check_aur_updates_checkbutton_toggled () {
var settings = new Settings ("org.pamac.aur");
@@ -341,6 +370,10 @@ namespace Pamac {
aur_build_dir_file_chooser.sensitive = transaction.enable_aur;
check_aur_updates_checkbutton.active = transaction.check_aur_updates;
check_aur_updates_checkbutton.sensitive = transaction.enable_aur;
aur_keep_pkgs_button.sensitive = transaction.enable_aur;
aur_keep_pkgs_button.state = transaction.aur_keep_pkgs;
aur_move_dir_label.sensitive = transaction.enable_aur && transaction.aur_keep_pkgs;
aur_move_dir_file_chooser.sensitive = transaction.enable_aur && transaction.aur_keep_pkgs;
#endif
}

View File

@@ -114,7 +114,7 @@ namespace Pamac {
public signal void save_pamac_config_finished (bool recurse, uint64 refresh_period, bool no_update_hide_icon);
#else
public signal void save_pamac_config_finished (bool recurse, uint64 refresh_period, bool no_update_hide_icon,
bool enable_aur, bool search_aur, string aur_build_dir, bool check_aur_updates);
bool enable_aur, bool search_aur, string aur_build_dir, bool check_aur_updates, bool aur_keep_pkgs, string aur_move_dir);
#endif
public signal void write_alpm_config_finished (bool checkspace);
public signal void write_mirrors_config_finished (string choosen_country, string choosen_generation_method);
@@ -146,6 +146,8 @@ namespace Pamac {
public bool enable_aur { get { return pamac_config.enable_aur; } }
public bool search_aur { get { return pamac_config.search_aur; } }
public string aur_build_dir { get { return pamac_config.aur_build_dir; } }
public bool aur_keep_pkgs { get { return pamac_config.aur_keep_pkgs; } }
public string aur_move_dir { get { return pamac_config.aur_move_dir; } }
#endif
public uint64 keep_num_pkgs { get { return pamac_config.keep_num_pkgs; } }
public bool rm_only_uninstalled { get { return pamac_config.rm_only_uninstalled; } }
@@ -228,7 +230,7 @@ namespace Pamac {
public signal void save_pamac_config_finished (bool recurse, uint64 refresh_period, bool no_update_hide_icon);
#else
public signal void save_pamac_config_finished (bool recurse, uint64 refresh_period, bool no_update_hide_icon,
bool enable_aur, bool search_aur, string aur_build_dir, bool check_aur_updates);
bool enable_aur, bool search_aur, string aur_build_dir, bool check_aur_updates, bool aur_keep_pkgs, string aur_move_dir);
#endif
public signal void write_alpm_config_finished (bool checkspace);
public signal void write_mirrors_config_finished (string choosen_country, string choosen_generation_method);
@@ -1401,6 +1403,9 @@ namespace Pamac {
foreach (unowned string path in standard_output.split ("\n")) {
if (path != "" && !(path in built_pkgs)) {
built_pkgs += path;
if(aur_keep_pkgs) {
yield spawn_in_term ({"cp", path, aur_move_dir});
}
}
}
}
@@ -2094,7 +2099,7 @@ namespace Pamac {
void on_save_pamac_config_finished (bool recurse, uint64 refresh_period, bool no_update_hide_icon) {
#else
void on_save_pamac_config_finished (bool recurse, uint64 refresh_period, bool no_update_hide_icon,
bool enable_aur, bool search_aur, string aur_build_dir, bool check_aur_updates) {
bool enable_aur, bool search_aur, string aur_build_dir, bool check_aur_updates, bool aur_keep_pkgs, string aur_move_dir) {
#endif
system_daemon.save_pamac_config_finished.disconnect (on_save_pamac_config_finished);
pamac_config.reload ();
@@ -2106,7 +2111,7 @@ namespace Pamac {
save_pamac_config_finished (recurse, refresh_period, no_update_hide_icon);
#else
save_pamac_config_finished (recurse, refresh_period, no_update_hide_icon,
enable_aur, search_aur, aur_build_dir, check_aur_updates);
enable_aur, search_aur, aur_build_dir, check_aur_updates, aur_keep_pkgs, aur_move_dir);
#endif
}