xdg: implement a better way

Brief about changes:
- add get_irssi_cache_dir()
- add get_irssi_runtime_dir()
- remove is_xdg_supported()

About the proposed implementation:
- use XDG only when the user has the XDG_CONFIG_HOME/irssi directory
- irssi_dir would equal XDG_DATA_HOME/irssi or ~/.irssi, depending on
whether XDG is enabled or not, respectively.
- if xdg is enabled, variables irssi_cache, irssi_runtime, would equal
their respective XDG paths.
- if xdg is *not* enabled, variables irssi_cache, irssi_runtime, would
equal irssi_dir

Notes for future code:
- functions that use the irssi config file would use get_irssi_config()
- functions that use the irssi data directory would use get_irssi_dir()
- functions that use the irssi cache directory would use
get_irssi_cache_dir()
- functions that use the irssi runtime directory would use
get_irssi_runtime_dir()

Stuff that are still missing for complete implementation:
- add checks to ensure the new referenced directories are present
- docs
This commit is contained in:
altffour 2021-01-07 13:26:45 +03:00
commit 4059827741
No known key found for this signature in database
GPG key ID: B4ADFA86EDF5CCE9
9 changed files with 50 additions and 75 deletions

View file

@ -204,13 +204,7 @@ sub get_names {
$xname =~ s/\W/_/g;
my $pname = "${xname}::";
if ($xname ne $sname || $sname =~ /_/) {
my $dir = "";
if (Irssi::is_xdg_supported()) {
$dir = Irssi::get_runtime_dir()."/scripts/";
}
else {
$dir = Irssi::get_irssi_dir()."/scripts/";
}
my $dir = Irssi::get_irssi_dir()."/scripts/";
if ($db && exists $db->{"$sname.pl"}) {
# $found = 1;
} elsif (-e $dir.$plname || -e $dir."$sname.pl" || -e $dir."autorun/$sname.pl") {