#!/usr/bin/env perl # # vim: set ts=4:noet # # sboclean # script to clean stuff left around from sbotools. # # authors: Jacob Pipkin # Luke Williams # license: WTFPL use 5.16.0; use strict; use warnings FATAL => 'all'; use SBO::Lib; use File::Basename; use Getopt::Long qw(:config bundling); use File::Path qw(remove_tree); my $self = basename ($0); sub show_usage () { print < \$help, 'version|v' => \$vers, 'clean-dist|d' => \$clean_dist, 'clean-work|w' => \$clean_work, 'interactive|i' => \$interactive, ); show_usage and exit 0 if $help; show_version and exit 0 if $vers; show_usage, die "You must specify at least one of -d or -w.\n" unless ($clean_dist || $clean_work); sub remove_stuff ($) { 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 =~ /^[Yy]/; } unlink $full if -f $full; remove_tree ($full) if -d $full; } } remove_stuff $config{SBO_HOME} .'/distfiles' if $clean_dist; remove_stuff '/tmp/SBo' if $clean_work; exit 0;