File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1
1
# !/usr/bin/env perl6
2
2
use MONKEY-SEE-NO-EVAL ; # until we have a better serialisation
3
+ use JSON::Fast;
4
+ use Panda::Installer;
3
5
4
6
my $ PROGRAM-NAME = " p6doc" ;
5
7
@@ -43,6 +45,12 @@ sub locate-module(Str $modulename) {
43
45
my @ candidates = (search-paths() X ~ </ Type/ Language/ > X ~ module-names($ modulename ). list);
44
46
DEBUG and warn : @ candidates . perl ;
45
47
my $ m = @ candidates . first : *. IO . f ;
48
+
49
+ unless $ m . defined {
50
+ # not "core" pod now try for panda installed module XXX not zef
51
+ $ m = locate-curli-module($ modulename );
52
+ }
53
+
46
54
unless $ m . defined {
47
55
my $ message = join " \n " ,
48
56
" Cannot locate $ modulename in any of the following paths:" ,
@@ -219,4 +227,23 @@ sub prompt-with-options( %options, %found ) {
219
227
return $ final-docee ;
220
228
}
221
229
230
+ sub locate-curli-module ($ module ) {
231
+ my $ prefix = Panda::Installer. new . default-prefix();
232
+ my $ dist = $ prefix ~ ' /dist' ;
233
+ my $ hdist ;
234
+ my @ modules ;
235
+ for dir($ dist ) -> $ f {
236
+ my $ d = from-json $ f . slurp ;
237
+ my @ keys = $ d <provides >. keys . list;
238
+ $ hdist {$ _ } = $ d <provides >{$ _ } for @ keys ;
239
+ @ modules . append : @ keys ;
240
+ }
241
+
242
+ if any (@ modules ) eq $ module {
243
+ my $ sha = $ hdist {$ module }<pm ><file >;
244
+ return " { $ prefix } /sources/{ $ sha } " ;
245
+ }
246
+ return ;
247
+ }
248
+
222
249
# vim: expandtab shiftwidth=4 ft=perl6
You can’t perform that action at this time.
0 commit comments