aboutsummaryrefslogtreecommitdiff
path: root/SBO-Lib/lib/SBO/Lib
diff options
context:
space:
mode:
authorSlack Coder <slackcoder@server.ky>2025-01-21 16:11:42 -0500
committerSlack Coder <slackcoder@server.ky>2025-01-28 11:31:35 -0500
commit921e9a76f1ca47d30d765f2f2bf61954e8ac9c9c (patch)
treeb2b0fa36ce53922c20538e8e5b4aeff8811eb2e0 /SBO-Lib/lib/SBO/Lib
parentda89dd975499f6b228d75fa5f25871911fae658a (diff)
downloadsbotools2-921e9a76f1ca47d30d765f2f2bf61954e8ac9c9c.tar.xz
Avoid requiring root access
Make temporary folder generation lazy to postpone requiring root access until needed.
Diffstat (limited to 'SBO-Lib/lib/SBO/Lib')
-rw-r--r--SBO-Lib/lib/SBO/Lib/Build.pm10
-rw-r--r--SBO-Lib/lib/SBO/Lib/Repo.pm4
2 files changed, 4 insertions, 10 deletions
diff --git a/SBO-Lib/lib/SBO/Lib/Build.pm b/SBO-Lib/lib/SBO/Lib/Build.pm
index e6aa66b..ad760b7 100644
--- a/SBO-Lib/lib/SBO/Lib/Build.pm
+++ b/SBO-Lib/lib/SBO/Lib/Build.pm
@@ -37,7 +37,6 @@ our @EXPORT_OK = qw{
rewrite_slackbuild
run_tee
- $tempdir
$tmpd
$env_tmp
};
@@ -71,11 +70,6 @@ set.
Will be the same as C<$TMP> if it is set, otherwise it will be C</tmp/SBo>.
-=head2 $tempdir
-
-This is a temporary directory created for sbotools' use, and it should be
-cleaned up when sbotools exits.
-
=cut
# get $TMP from the env, if defined - we use two variables here because there
@@ -85,8 +79,6 @@ our $env_tmp = $ENV{TMP};
our $tmpd = $env_tmp ? $env_tmp : '/tmp/SBo';
make_path($tmpd) unless -d $tmpd;
-our $tempdir = tempdir(CLEANUP => 1, DIR => $tmpd);
-
=head1 SUBROUTINES
=cut
@@ -729,6 +721,8 @@ output will be C<undef> and the exit status will hold a true value.
sub run_tee {
my $cmd = shift;
+ my $tempdir = tempdir(CLEANUP => 1, DIR => $tmpd);
+
my $out_fh = tempfile(DIR => $tempdir);
my $out_fn = get_tmp_extfn($out_fh);
return undef, _ERR_F_SETFD if not defined $out_fn;
diff --git a/SBO-Lib/lib/SBO/Lib/Repo.pm b/SBO-Lib/lib/SBO/Lib/Repo.pm
index 6c7babb..5337ea8 100644
--- a/SBO-Lib/lib/SBO/Lib/Repo.pm
+++ b/SBO-Lib/lib/SBO/Lib/Repo.pm
@@ -442,10 +442,10 @@ C<$repo_path>, and if not, offer to run C<sbosnap fetch> for you.
sub slackbuilds_or_fetch {
unless (chk_slackbuilds_txt()) {
say 'It looks like you haven\'t run "sbosnap fetch" yet.';
- if (prompt("Would you like me to do this now?", default => 'yes')) {
+ if (($< == 0) && prompt("Would you like me to do this now?", default => 'yes')) {
fetch_tree();
} else {
- say 'Please run "sbosnap fetch"';
+ say 'Please run "sbosnap fetch" as root';
exit 0;
}
}