diff options
Diffstat (limited to 'extensions/PhabBugz/Extension.pm')
-rw-r--r-- | extensions/PhabBugz/Extension.pm | 53 |
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; |