/usr/share/gforge/bin/unregister-theme is in gforge-db-postgresql 5.3.2+20141104-3+deb8u3.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #!/usr/bin/perl -w
#
# Debian-specific script to unregister a theme from the Gforge database
use DBI ;
use strict ;
use diagnostics ;
use vars qw/$dbh @reqlist $thdir/ ;
sub debug ( $ ) ;
my $source_path = `forge_get_config source_path`;
chomp $source_path;
require ("$source_path/lib/include.pl") ; # Include all the predefined functions
&db_connect ;
if ($#ARGV < 0) {
debug "Usage: unregister-theme <dirname>" ;
debug "The theme must be in $source_path/www/themes/<dirname>/" ;
exit 1 ;
}
$thdir = $ARGV [0] ;
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
eval {
my ($query, $sth, @array, $version, $action) ;
$thdir = $dbh->quote ($thdir) ;
$query = "SELECT count(*) FROM themes WHERE dirname=$thdir" ;
$sth = $dbh->prepare ($query) ;
$sth->execute () ;
@array = $sth->fetchrow_array () ;
$sth->finish () ;
if ($array [0] != 0) {
$query = "UPDATE themes SET enabled=false WHERE dirname=$thdir" ;
# debug $query ;
$sth = $dbh->prepare ($query) ;
$sth->execute () ;
$sth->finish () ;
}
# debug "Committing." ;
$dbh->commit () ;
# There should be a commit at the end of every block above.
# If there is not, then it might be symptomatic of a problem.
# For safety, we roll back.
$dbh->rollback ();
};
if ($@) {
warn "Transaction aborted because $@" ;
debug "Transaction aborted because $@" ;
$dbh->rollback ;
debug "Please report this bug on the Debian bug-tracking system." ;
debug "Please include the previous messages as well to help debugging." ;
debug "You should not worry too much about this," ;
debug "your DB is still in a consistent state and should be usable." ;
exit 1 ;
}
$dbh->rollback ;
$dbh->disconnect ;
sub debug ( $ ) {
my $v = shift ;
chomp $v ;
print STDERR "$v\n" ;
}
|