summaryrefslogtreecommitdiffstats
path: root/extensions/PhabBugz/Extension.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/PhabBugz/Extension.pm')
-rw-r--r--extensions/PhabBugz/Extension.pm53
1 files changed, 53 insertions, 0 deletions
diff --git a/extensions/PhabBugz/Extension.pm b/extensions/PhabBugz/Extension.pm
index 68090aa10..b3ad44819 100644
--- a/extensions/PhabBugz/Extension.pm
+++ b/extensions/PhabBugz/Extension.pm
@@ -10,10 +10,20 @@ package Bugzilla::Extension::PhabBugz;
use 5.10.1;
use strict;
use warnings;
+
use parent qw(Bugzilla::Extension);
+use Bugzilla::Constants;
+use Bugzilla::Extension::PhabBugz::Feed;
+use Bugzilla::Extension::PhabBugz::Logger;
+
our $VERSION = '0.01';
+BEGIN {
+ *Bugzilla::User::phab_phid = sub { return $_[0]->{phab_phid}; };
+ *Bugzilla::User::phab_review_status = sub { return $_[0]->{phab_review_status}; };
+}
+
sub config_add_panels {
my ($self, $args) = @_;
my $modules = $args->{panel_modules};
@@ -40,4 +50,47 @@ sub webservice {
$args->{dispatch}->{PhabBugz} = "Bugzilla::Extension::PhabBugz::WebService";
}
+#
+# installation/config hooks
+#
+
+sub db_schema_abstract_schema {
+ my ($self, $args) = @_;
+ $args->{'schema'}->{'phabbugz'} = {
+ FIELDS => [
+ id => {
+ TYPE => 'INTSERIAL',
+ NOTNULL => 1,
+ PRIMARYKEY => 1,
+ },
+ name => {
+ TYPE => 'VARCHAR(255)',
+ NOTNULL => 1,
+ },
+ value => {
+ TYPE => 'MEDIUMTEXT',
+ NOTNULL => 1
+ }
+ ],
+ INDEXES => [
+ phabbugz_idx => {
+ FIELDS => ['name'],
+ TYPE => 'UNIQUE',
+ },
+ ],
+ };
+}
+
+sub install_filesystem {
+ my ($self, $args) = @_;
+ my $files = $args->{'files'};
+
+ my $extensionsdir = bz_locations()->{'extensionsdir'};
+ my $scriptname = $extensionsdir . "/PhabBugz/bin/phabbugzd.pl";
+
+ $files->{$scriptname} = {
+ perms => Bugzilla::Install::Filesystem::WS_EXECUTE
+ };
+}
+
__PACKAGE__->NAME;