aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ Pipkin <j@dawnrazor.net>2013-01-13 08:16:46 -0600
committerJ Pipkin <j@dawnrazor.net>2013-01-13 08:16:46 -0600
commit104928d2fc599779ed6a3d18352feb5221d366b7 (patch)
tree005ded952a33a4ae3db38a8706bc6d00947123ee
parentebea5de7bf371f4bc2fd87724acca91279d7e0d1 (diff)
parente86433279141617306c136e2cac4ca42d5821d55 (diff)
downloadsbotools2-104928d2fc599779ed6a3d18352feb5221d366b7.tar.xz
Merge branch 'clean_c32', fixes #46
-rw-r--r--man1/sboclean.14
-rwxr-xr-xsboclean37
2 files changed, 30 insertions, 11 deletions
diff --git a/man1/sboclean.1 b/man1/sboclean.1
index 6e9e38e..0cb308c 100644
--- a/man1/sboclean.1
+++ b/man1/sboclean.1
@@ -7,7 +7,7 @@ sboclean - clean files left around by sbotools.
sboclean [-h|-v] [-dwi]
.SH DESCRIPTION
.P
-sboclean is used to clean files left around by sbotools, such as downloaded source files ("distfiles"), or work directories under /tmp/SBo. Note that if not run with the -i flag, sboclean will remove anything in the distfiles or /tmp/SBo folders with extreme prejudice. One of either -d or -w must be specified for this script to do anything.
+sboclean is used to clean files left around by sbotools, such as downloaded source files ("distfiles"), or work directories under /tmp/SBo and, for compat32 installs, under /tmp. Note that if not run with the -i flag, sboclean will remove anything in the distfiles or /tmp/SBo folders and any /tmp/package-*-compat32 directories with extreme prejudice. One of either -d or -w must be specified for this script to do anything.
.SH OPTIONS
.P
-h|--help
@@ -27,7 +27,7 @@ Clean distfiles, by default located at /usr/sbo/distfiles.
.P
-w|--clean-work
.RS
-Clean working directories, located under /tmp/SBo.
+Clean working directories, located under /tmp/SBo and, for compat32 installs, /tmp.
.RE
.P
-i|--interactive
diff --git a/sboclean b/sboclean
index 3835de7..c9ee8c0 100755
--- a/sboclean
+++ b/sboclean
@@ -54,24 +54,43 @@ show_version and exit 0 if $vers;
usage_error "You must specify at least one of -d or -w." unless
($clean_dist || $clean_work);
+sub rm_full($) {
+ exists $_[0] or script_error 'rm_full requires an argument.';
+ my $full = shift;
+ if ($interactive) {
+ print "Remove $full? [n] ";
+ return unless <STDIN> =~ /^[Yy]/;
+ }
+ unlink $full if -f $full;
+ remove_tree($full) if -d $full;
+ return 1;
+}
+
sub remove_stuff($) {
- exists $_[0] or script_error 'remove_stuff requires an argument';
+ exists $_[0] or script_error 'remove_stuff requires an argument.';
-d $_[0] or say 'Nothing to do.' and return 1;
my $dir = shift;
opendir(my $dh, $dir);
FIRST: while (my $ls = readdir $dh) {
next FIRST if $ls =~ /^(\.){1,2}$/;
- my $full = "$dir/$ls";
- if ($interactive) {
- print "Remove $full? [n] ";
- next FIRST unless <STDIN> =~ /^[Yy]/;
- }
- unlink $full if -f $full;
- remove_tree($full) if -d $full;
+ rm_full "$dir/$ls";
+ }
+}
+
+sub clean_c32() {
+ my $dir = '/tmp';
+ opendir(my $dh, $dir);
+ FIRST: while (my $ls = readdir $dh) {
+ next FIRST unless $ls =~ /^package-.+-compat32$/;
+ rm_full "$dir/$ls";
}
}
remove_stuff $config{SBO_HOME} .'/distfiles' if $clean_dist;
-remove_stuff '/tmp/SBo' if $clean_work;
+
+if ($clean_work) {
+ remove_stuff '/tmp/SBo';
+ clean_c32;
+}
exit 0;