1+ /******/ ( ( ) => { // webpackBootstrap
2+ /******/ var __webpack_modules__ = ( {
3+
4+ /***/ 396 :
5+ /***/ ( ( module ) => {
6+
7+ module . exports = eval ( "require" ) ( "@actions/core" ) ;
8+
9+
10+ /***/ } ) ,
11+
12+ /***/ 526 :
13+ /***/ ( ( module ) => {
14+
15+ module . exports = eval ( "require" ) ( "@actions/exec" ) ;
16+
17+
18+ /***/ } ) ,
19+
20+ /***/ 27 :
21+ /***/ ( ( module ) => {
22+
23+ module . exports = eval ( "require" ) ( "@actions/io" ) ;
24+
25+
26+ /***/ } ) ,
27+
28+ /***/ 617 :
29+ /***/ ( ( module ) => {
30+
31+ module . exports = eval ( "require" ) ( "@actions/tool-cache" ) ;
32+
33+
34+ /***/ } ) ,
35+
36+ /***/ 37 :
37+ /***/ ( ( module ) => {
38+
39+ "use strict" ;
40+ module . exports = require ( "os" ) ;
41+
42+ /***/ } ) ,
43+
44+ /***/ 17 :
45+ /***/ ( ( module ) => {
46+
47+ "use strict" ;
48+ module . exports = require ( "path" ) ;
49+
50+ /***/ } )
51+
52+ /******/ } ) ;
53+ /************************************************************************/
54+ /******/ // The module cache
55+ /******/ var __webpack_module_cache__ = { } ;
56+ /******/
57+ /******/ // The require function
58+ /******/ function __nccwpck_require__ ( moduleId ) {
59+ /******/ // Check if module is in cache
60+ /******/ var cachedModule = __webpack_module_cache__ [ moduleId ] ;
61+ /******/ if ( cachedModule !== undefined ) {
62+ /******/ return cachedModule . exports ;
63+ /******/ }
64+ /******/ // Create a new module (and put it into the cache)
65+ /******/ var module = __webpack_module_cache__ [ moduleId ] = {
66+ /******/ // no module.id needed
67+ /******/ // no module.loaded needed
68+ /******/ exports : { }
69+ /******/ } ;
70+ /******/
71+ /******/ // Execute the module function
72+ /******/ var threw = true ;
73+ /******/ try {
74+ /******/ __webpack_modules__ [ moduleId ] ( module , module . exports , __nccwpck_require__ ) ;
75+ /******/ threw = false ;
76+ /******/ } finally {
77+ /******/ if ( threw ) delete __webpack_module_cache__ [ moduleId ] ;
78+ /******/ }
79+ /******/
80+ /******/ // Return the exports of the module
81+ /******/ return module . exports ;
82+ /******/ }
83+ /******/
84+ /************************************************************************/
85+ /******/ /* webpack/runtime/compat */
86+ /******/
87+ /******/ if ( typeof __nccwpck_require__ !== 'undefined' ) __nccwpck_require__ . ab = __dirname + "/" ;
88+ /******/
89+ /************************************************************************/
90+ var __webpack_exports__ = { } ;
91+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
92+ ( ( ) => {
93+ const core = __nccwpck_require__ ( 396 ) ;
94+ const tc = __nccwpck_require__ ( 617 ) ;
95+ const exec = __nccwpck_require__ ( 526 ) ;
96+ const io = __nccwpck_require__ ( 27 ) ;
97+
98+ const path = __nccwpck_require__ ( 17 ) ;
99+ const os = __nccwpck_require__ ( 37 ) ;
100+
101+ let PERL ;
102+
103+ async function install_cpm_location ( ) {
104+ let out = "" ;
105+
106+ const options = { } ;
107+ options . listeners = {
108+ stdout : ( data ) => {
109+ out += data . toString ( ) ;
110+ } ,
111+ } ;
112+
113+ let p = core . getInput ( "path" ) ;
114+ p . replace ( "\\" , "\\\\" ) ;
115+ await exec . exec ( PERL , [ "-MConfig" , "-e" , `print "${ p } "` ] , options ) ;
116+
117+ return path . resolve ( out ) ;
118+ }
119+
120+ async function install_cpm ( install_to ) {
121+ const version = core . getInput ( "version" ) ;
122+ const url = `https://raw.githubusercontent.com/skaji/cpm/${ version } /cpm` ;
123+
124+ core . info ( `Get cpm from URL: ${ url } ` ) ;
125+
126+ const cpmScript = await tc . downloadTool ( url ) ;
127+
128+ core . info ( `Install cpm to: ${ install_to } ` ) ;
129+
130+ const platform = os . platform ( ) ;
131+
132+ if ( platform == "win32" ) {
133+ await io . cp ( cpmScript , install_to ) ;
134+ } else {
135+ await do_exec ( [
136+ PERL ,
137+ "-MFile::Copy=cp" ,
138+ "-e" ,
139+ `cp("${ cpmScript } ", "${ install_to } "); chmod(0755, "${ install_to } ")` ,
140+ ] ) ;
141+ }
142+
143+ return install_to ;
144+ }
145+
146+ async function which_perl ( ) {
147+ const perl = core . getInput ( "perl" ) ;
148+ if ( perl == "perl" ) {
149+ return await io . which ( "perl" , true ) ;
150+ }
151+ return perl ;
152+ }
153+
154+ function is_true ( b ) {
155+ if ( b !== null && ( b === true || b == "true" || b == "1" || b == "ok" ) ) {
156+ return true ;
157+ }
158+
159+ return false ;
160+ }
161+
162+ async function do_exec ( cmd ) {
163+ const sudo = is_true ( core . getInput ( "sudo" ) ) ;
164+ const platform = os . platform ( ) ;
165+ const bin = sudo && platform != "win32" ? "sudo" : cmd . shift ( ) ;
166+
167+ core . info ( `do_exec: ${ bin } ` ) ;
168+
169+ await exec . exec ( bin , cmd ) ;
170+ }
171+
172+ async function run ( ) {
173+ PERL = await which_perl ( ) ;
174+
175+ const cpm_location = await install_cpm_location ( ) ;
176+
177+ await install_cpm ( cpm_location ) ;
178+
179+ // input arguments
180+ const install = core . getInput ( "install" ) ;
181+ const cpanfile = core . getInput ( "cpanfile" ) ;
182+ const tests = core . getInput ( "tests" ) ;
183+ const dash_g = core . getInput ( "global" ) ;
184+ const args = core . getInput ( "args" ) ;
185+ const verbose = core . getInput ( "verbose" ) ;
186+
187+ const w_tests = is_true ( tests ) ? "--test" : "--no-test" ;
188+ let w_args = [ ] ;
189+
190+ if ( args !== null && args . length ) {
191+ w_args = args . split ( / \s + / ) ;
192+ }
193+
194+ /* base CMD_install command */
195+ let CMD_install = [
196+ PERL ,
197+ cpm_location ,
198+ "install" ,
199+ "--show-build-log-on-failure" ,
200+ w_tests ,
201+ ] ;
202+
203+ if ( is_true ( verbose ) ) {
204+ CMD_install . push ( "-v" ) ;
205+ }
206+ if ( is_true ( dash_g ) ) {
207+ CMD_install . push ( "-g" ) ;
208+ }
209+ if ( w_args . length ) {
210+ CMD_install = CMD_install . concat ( w_args ) ;
211+ }
212+
213+ let has_run = false ;
214+
215+ /* install one ore more modules */
216+ if ( install !== null && install . length ) {
217+ // install one or more modules
218+ core . info ( `install: ${ install } !` ) ;
219+ const list = install . split ( "\n" ) ;
220+
221+ let cmd = [ ...CMD_install ] ; /* clone array */
222+ cmd = cmd . concat ( list ) ;
223+
224+ has_run = true ;
225+ await do_exec ( cmd ) ;
226+ }
227+
228+ /* install from cpanfile */
229+ if ( cpanfile !== null && cpanfile . length ) {
230+ // install one or more modules
231+ core . info ( `cpanfile: ${ cpanfile } !` ) ;
232+ const cpanfile_full_path = path . resolve ( cpanfile ) ;
233+ core . info ( `cpanfile: ${ cpanfile_full_path } ! [resolved]` ) ;
234+
235+ let cmd = [ ...CMD_install ] ;
236+ cmd . push ( "--cpanfile" , cpanfile_full_path ) ;
237+
238+ has_run = true ;
239+ await do_exec ( cmd ) ;
240+ }
241+
242+ /* custom run with args */
243+ if ( has_run === false && w_args . length ) {
244+ core . info ( `custom run with args` ) ;
245+ let cmd = [ ...CMD_install ] ;
246+ has_run = true ;
247+ await do_exec ( cmd ) ;
248+ }
249+ }
250+
251+ // Call run
252+ ( async ( ) => {
253+ try {
254+ await run ( ) ;
255+ } catch ( error ) {
256+ core . setFailed ( error . message ) ;
257+ }
258+ } ) ( ) ;
259+ } ) ( ) ;
260+
261+ module . exports = __webpack_exports__ ;
262+ /******/ } ) ( )
263+ ;
0 commit comments