diff options
Diffstat (limited to 'tests/examplefiles/pacman.ijs')
-rw-r--r-- | tests/examplefiles/pacman.ijs | 1107 |
1 files changed, 0 insertions, 1107 deletions
diff --git a/tests/examplefiles/pacman.ijs b/tests/examplefiles/pacman.ijs deleted file mode 100644 index f067b6e2..00000000 --- a/tests/examplefiles/pacman.ijs +++ /dev/null @@ -1,1107 +0,0 @@ -cocurrent 'jpacman' -coinsert 'j' - -BASELIB=: 'base library' -DATAMASK=: 0 -HWNDP=: '' -ISGUI=: 0 -ONLINE=: 0 -PKGDATA=: 0 7$a: -SECTION=: ,<'All' -SYSNAME=: 'Package Manager' -TIMEOUT=: 60 -WWWREV=: REV=: _1 - -IgnoreIOS=: 0 : 0 -api/jni -data/dbman -data/ddmysql -data/odbc -demos/isigraph -demos/wd -demos/wdplot -games/minesweeper -games/nurikabe -games/pousse -games/solitaire -general/pcall -general/sfl -graphics/d3 -graphics/fvj3 -graphics/gl2 -graphics/gnuplot -graphics/graph -graphics/graphviz -graphics/jturtle -graphics/print -graphics/tgsj -graphics/treemap -graphics/viewmat -gui/monthview -gui/util -ide/qt -math/tabula -media/animate -media/gdiplus -media/image3 -media/ming -media/paint -media/wav -) - -Ignore=: 3 : 0'' -if. IFIOS do. - <;._2 IgnoreIOS -else. - <'ide/ios' -end. -) -3 : 0'' -nc=. '--no-cache' -if. IFUNIX do. - if. UNAME-:'Darwin' do. - HTTPCMD=: 'curl -o %O --stderr %L -f -s -S %U' - elseif. do. - if. 'Android'-:UNAME do. nc=. '' - else. try. nc=. nc #~ 1 e. nc E. shell 'wget --help' catch. nc=. '' end. end. - HTTPCMD=: 'wget ',nc,' -O %O -o %L -t %t %U' - end. -else. - if. fexist exe=. jpath '~tools/ftp/wget.exe' do. exe=. '"',exe,'"' else. exe=. 'wget.exe' end. - try. nc=. nc #~ 1 e. nc E. shell exe,' --help' catch. nc=. '' end. - HTTPCMD=: exe,' ',nc,' -O %O -o %L -t %t -T %T %U' - if. fexist UNZIP=: jpath '~tools/zip/unzip.exe' do. UNZIP=: '"',UNZIP,'" -o -C ' else. UNZIP=: 'unzip.exe -o -C ' end. -end. -) -setfiles=: 3 : 0 -ADDCFG=: jpath '~addons/config/' -makedir ADDCFG -ADDCFGIJS=: ADDCFG,'config.ijs' -JRELEASE=: ({.~i.&'/') 9!:14'' -JRELEASE=: 'j802' -LIBTREE=: readtree'' -if. IFIOS do. - WWW=: '/jal/',JRELEASE,'/' -else. - WWW=: 'http://www.jsoftware.com/jal/',JRELEASE,'/' -end. -LIBVER=: jpath '~system/config/version.txt' -) -destroy=: codestroy -CFGFILES=: <;._2 (0 : 0) -addons.txt -library.txt -release.txt -revision.txt -zips.txt -) -LIBDESC=: 0 : 0 -This is the base library of scripts and labs included in the J system. - -Reinstalling or upgrading this library will overwrite files in the system subdirectory. Restart J afterwards. - -Files outside the system subdirectory, such as profile.ijs, are not changed. -) -cutjal=: ([: (* 4 > +/\) ' ' = ]) <;._1 ] -cutjsp=: ([: (* 5 > +/\) ' ' = ]) <;._1 ] -dquote=: '"'&, @ (,&'"') -fname=: #~ ([: *./\. ~:&'/') -hostcmd=: [: 2!:0 '(' , ] , ' || true)'"_ -ischar=: 2 = 3!:0 -rnd=: [ * [: <. 0.5 + %~ -sep2under=: '/' & (I.@('_' = ])}) -termLF=: , (0 < #) # LF -. {: -todel=: ; @: (DEL&, @ (,&(DEL,' ')) each) -tolist=: }. @ ; @: (LF&,@,@":each) -isjpkgout=: ((4 = {:) *. 2 = #)@$ *. 1 = L. -getintro=: ('...' ,~ -&3@[ {. ])^:(<#) -info=: smoutput -getnames=: 3 : 0 -select. L.y -case. 0 do. - if. +/ BASELIB E. y do. - y=. (<BASELIB), cutnames y rplc BASELIB;'' - else. - y=. cutnames y - end. -case. 1 do. - if. 2 = #$y do. - y=. {."1 y - else. - y=. ,y - end. -case. do. - '' return. -end. -y -) -curtailcaption=: 3 : 0 -idx=. <_1;~I. 45<#&>{:"1 y -y=. (45&getintro &.> idx{y) idx}y -) -deltree=: 3 : 0 -try. - res=. 0< ferase {."1 dirtree y - *./ res,0<ferase |.dirpath y -catch. 0 end. -) -fixjal=: 3 : 0 -if. 2 > #y do. i.0 5 return. end. -m=. _2 |. (LF,')',LF) E. y -r=. _2 }. each m <;._2 y -x=. r i.&> LF -d=. (x+1) }.each r -r=. x {.each r -r=. 3 {."1 cutjal &> ' ' ,each r -x=. d i.&> LF -c=. x {.each d -d=. (x+1) }.each d -r,.c,.d -) -fixjal2=: 3 : 0 -if. 2 > #y do. i.0 2 return. end. -cutjal &> ' ' ,each <;._2 y -) -fixjsp=: 3 : 0 -if. 2 > #y do. i.0 5 return. end. -m=. _2 |. (LF,')',LF) E. y -r=. _2 }. each m <;._2 y -x=. r i.&> LF -d=. (x+1) }.each r -r=. x {.each r -r=. ' ' ,each r -(cutjsp &> r),.d -) -fixlib=: 3 : 0 -msk=. (<LIBTREE) = 1 {"1 y -if. -. 1 e. msk do. ($0);'';0 return. end. -'ver fln siz'=. 2 4 5 { (msk i.1) { y -ver=. fixver ver -ver;fln;siz -) -fixlibs=: 3 : 0 -if. 2 > #y do. - i.0 6 return. -end. -fls=. <;._2 y -ndx=. fls i.&> ' ' -siz=. <&> 0 ". (ndx+1) }.&> fls -fls=. ndx {.each fls -zps=. <;._2 &> fls ,each '_' -pfm=. 3 {"1 zps -uname=. tolower UNAME -msk=. (uname -: ({.~ i.&'.')) &> pfm -if. 1 ~: +/msk do. msk=. 1,~ }:0*.msk end. -msk # zps,.fls,.siz -) -fixrev=: 3 : 0 -{. _1 ". :: _1: y -. CRLF -) -fixupd=: 3 : 0 -_1 ". :: _1: y -. CRLF -) -fixver=: 3 : 0 -if. ischar y do. - y=. y -. CRLF - y=. 0 ". ' ' (I. y='.') } y -end. -3 {. y -) -fixvers=: 3 : 0 -s=. $y -y=. ,y -3 {."1 [ 0 ". s $ ' ' (I. y e. './') } y -) -fmtjal=: 3 : 0 -if. 0 = #y do. '' return. end. -r=. (4 {."1 y) ,each "1 ' ',LF2 -r=. <@; "1 r -; r ,each ({:"1 y) ,each <')',LF -) -fmtjal2=: 3 : 0 -if. 0 = #y do. '' return. end. -; (2 {."1 y) ,each "1 ' ',LF -) -fmtdep=: 3 : 0 -}. ; ',' ,each a: -.~ <;._2 y -) -fmtjsp=: 3 : 0 -if. 0 = #y do. '' return. end. -r=. (4 {."1 y) ,each "1 ' ',LF -r=. <@; "1 r -; r ,each ({:"1 y) ,each <')',LF -) -fmtlib=: 3 : 0 -, 'q<.>,q<.>r<0>3.0,r<0>3.0' 8!:2 y -) -fmtver=: 3 : 0 -if. 0=#y do. '' return. end. -if. ischar y do. y return. end. -}. ; '.' ,each ": each y -) -fmtverlib=: 3 : 0 -fmtver y -) -fixzips=: 3 : 0 -if. 2 > #y do. i.0 5 return. end. -fls=. <;._2 y -ndx=. fls i.&> ' ' -siz=. 0 ". (ndx+1) }.&> fls -fls=. ndx {.each fls -zps=. <;._2 &> fls ,each '_' -zps=. zps,.fls,.<&>siz -pfm=. 3 {"1 zps -and=. (1 e. 'android'&E.) &> pfm -lnx=. (1 e. 'linux'&E.) &> pfm -mac=. (1 e. 'darwin'&E.) &> pfm -win=. mac < (1 e. 'win'&E.) &> pfm - -select. UNAME -case. 'Win' do. - zps=. win # zps -case. 'Linux' do. - zps=. lnx # zps -case. 'Android' do. - zps=. and # zps -case. 'Darwin' do. - zps=. mac # zps - zps=. zps /: 3 {"1 zps - zps=. (~: 3 {."1 zps) # zps -end. - -bit=. IF64 pick '64';'32' -pfm=. 3 {"1 zps -exc=. (1 e. bit&E.) &> pfm -zps=. zps \: exc -zps=. (~: 3 {."1 zps) # zps -fnm=. 0 {"1 zps -lnm=. 1 {"1 zps -ver=. 2 {"1 zps -pfm=. 3 {"1 zps -fls=. 4 {"1 zps -siz=. 5 {"1 zps -nms=. fnm ,each '/' ,each lnm -pfm=. (pfm i.&> '.') {.each pfm -ndx=. \: # &> pfm -sort ndx { nms,.pfm,.ver,.fls,.siz -) -fwritenew=: 4 : 0 -if. x -: fread y do. - 0 -else. - x fwrite y -end. -) -platformparent=: 3 : 0 -((< _2 {. y) e. '32';'64') # _2 }. y -) -makedir=: 1!:5 :: 0: @ < -plural=: 4 : 0 -y,(1=x)#'s' -) -sizefmt=: 3 : 0 -select. +/ y >: 1e3 1e4 1e6 1e7 1e9 -case. 0 do. - (": y), ' byte',(y~:1)#'s' -case. 1 do. - (": 0.1 rnd y%1e3),' KB' -case. 2 do. - (": 1 rnd y%1e3),' KB' -case. 3 do. - (": 0.1 rnd y%1e6),' MB' -case. 4 do. - (": 1 rnd y%1e6),' MB' -case. do. - (": 0.1 rnd y%1e9),' GB' -end. -) -shellcmd=: 3 : 0 -if. IFUNIX do. - hostcmd y -else. - spawn_jtask_ y -end. -) -subdir=: 3 : 0 -if. 0=#y do. '' return. end. -a=. 1!:0 y,'*' -if. 0=#a do. '' return. end. -a=. a #~ '-d' -:"1 [ 1 4 {"1 > 4 {"1 a -(<y) ,each ({."1 a) ,each '/' -) -testaccess=: 3 : 0 -f=. <jpath'~install/testaccess.txt' -try. - '' 1!:2 f - 1!:55 f - 1 -catch. - 0 -end. -) -toupper1=: 3 : 0 -if. 0=#y do. '' return. end. -(toupper {. y),tolower }. y -) -unzip=: 3 : 0 -'file dir'=. dquote each y -e=. 'Unexpected unzip error' -if. IFUNIX do. - notarcmd=. 0 - if. IFIOS +. UNAME-:'Android' do. - notarcmd=. _1-: 2!:0 ::_1: 'which tar' - if. (UNAME-:'Android') > '/mnt/sdcard'-:2!:5'EXTERNAL_STORAGE' do. notarcmd=. 1 end. - end. - if. notarcmd do. - require 'tar' - 'file dir'=. y - if. (i.0 0) -: tar 'x';file;dir do. e=. '' end. - else. - e=. shellcmd 'tar ',((IFIOS+:UNAME-:'Android')#(('Darwin'-:UNAME){::'--no-same-owner --no-same-permissions';'-o -p')),' -xzf ',file,' -C ',dir - end. - if. (0~:FHS) *. ('root'-:2!:5'USER') +. (<2!:5'HOME') e. 0;'/var/root';'/root';'';,'/' do. - shellcmd ::0: 'find ',dir,' -type d -exec chmod a+rx {} \+' - shellcmd ::0: 'find ',dir,' -type f -exec chmod a+r {} \+' - end. -else. - dir=. (_2&}. , '/' -.~ _2&{.) dir - e=. shellcmd UNZIP,' ',file,' -d ',dir -end. -e -) -zipext=: 3 : 0 -y, IFUNIX pick '.zip';'.tar.gz' -) -CHECKADDONSDIR=: 0 : 0 -The addons directory does not exist and cannot be created. - -It is set to: XX. - -You can either create the directory manually, or set a new addons directory in your profile script. -) -CHECKASK=: 0 : 0 -Read catalog from the server using Internet connection now? - -Otherwise the local catalog is used offline. -) -CHECKONLINE=: 0 : 0 -An active Internet connection is needed to install packages. - -Continue only if you have an active Internet connection. - -OK to continue? -) -CHECKREADSVR=: 0 : 0 -An active Internet connection is needed to read the server repository catalog. - -Continue only if you have an active Internet connection. - -OK to continue? -) -CHECKSTARTUP=: 0 : 0 -Setup repository using Internet connection now? - -Select No if not connected, to complete setup later. After Setup is done, repository can be used offline with more options in Tools menu and Preferences dialog. -) -checkaccess=: 3 : 0 -if. testaccess'' do. 1 return. end. -msg=. 'Unable to run Package Manager, as you do not have access to the installation folder.' -if. IFWIN do. - msg=. msg,LF2,'To run as Administrator, right-click the J icon, select Run as... and ' - msg=. msg,'then select Adminstrator.' -end. -info msg -0 -) -checkaddonsdir=: 3 : 0 -d=. jpath '~addons' -if. # 1!:0 d do. 1 return. end. -if. 1!:5 :: 0: <d do. - log 'Created addons directory: ',d - 1 return. -end. -info CHECKADDONSDIR rplc 'XX';d -0 -) -getonline=: 3 : 0 -ONLINE=: 2=3 2 wdquery y -) -getserver=: 3 : 0 -'rc p'=. httpgetr (WWW,'revision.txt');2 -if. rc do. 0 return. end. -write_lastupdate'' -WWWREV=: fixrev p -if. WWWREV = REV do. 1 return. end. -refreshweb'' -) -checkonline=: 3 : 0 -select. ReadCatalog_j_ -case. 0 do. - if. REV >: 0 do. - ONLINE=: 0 - log 'Using local copy of catalog. See Preferences to change the setting.' - 1 return. - end. - if. 0 = getonline 'Read Catalog from Server';CHECKREADSVR do. 0 return. end. -case. 1 do. - ONLINE=: 1 -case. 2 do. - if. REV >: 0 do. - if. 0 = getonline 'Read Catalog from Server';CHECKASK do. - log 'Using local copy of catalog. See Preferences to change the setting.' - 1 return. - end. - else. - if. 0 = getonline 'Setup Repository';CHECKSTARTUP do. 0 return. end. - end. -end. -log 'Updating server catalog...' -if. 0 = getserver'' do. - ONLINE=: 0 - log 'Working offline using local copy of catalog.' -else. - log 'Done.' -end. -1 -) -checkstatus=: 3 : 0 -if. 0 e. #LIBS do. '' return. end. -msk=. masklib PKGDATA -ups=. pkgups'' -libupm=. 1 e. msk *. ups -msk=. -. msk -addnim=. +/msk *. pkgnew'' -addupm=. +/msk *. pkgups'' -tot=. +/addnim,addupm,libupm -if. 0 = tot do. - 'All available packages are installed and up to date.' return. -end. -select. 0 < addnim,addupm -case. 0 0 do. - msg=. 'Addons are up to date.' -case. 0 1 do. - msg=. 'All addons are installed, ',(":addupm), ' can be upgraded.' -case. 1 0 do. - if. addnim = <:#PKGDATA do. - msg=. 'No addons are installed.' - else. - j=. ' addon',('s'#~1<addnim),' are not yet installed.' - msg=. 'Installed addons are up to date, ',(":addnim),j - end. -case. 1 1 do. - j=. (":addupm),' addon',('s'#~1<addupm),' can be upgraded, ' - msg=. j,(":addnim), ' addon',('s'#~1<addnim),' are not yet installed.' -end. -if. 0 = libupm do. - msg,LF,'The base library is up to date.' -else. - msg,LF,'There is a newer version of the base library.' -end. -) -write_lastupdate=: 3 : 0 -txt=. ": 6!:0 '' -txt fwrites ADDCFG,'lastupdate.txt' -) -checklastupdate=: 3 : 0 -if. _1 -: LASTUPD do. - res=. 'has never been updated.' -else. - res=. 'was last updated: ',timestamp LASTUPD -end. -'Local JAL information ',res -) -getdepend=: 3 : 0 -if. 0 = #y do. y return. end. -dep=. getdepend_console 1{"1 y -PKGDATA #~ (1{"1 PKGDATA) e. dep -) -getdepend_console=: 3 : 0 -if. 0 = #y do. y return. end. -old=. '' -ids=. 1{"1 PKGDATA -dep=. 6{"1 PKGDATA -res=. ~. <;._1 ; ',' ,each (ids e. y) # dep -whilst. -. res-:old do. - old=. res - res=. ~. res, <;._1 ; ',' ,each (ids e. res) # dep -end. -~. y, res -. a:, {."1 ADDINS -) -httpget=: 3 : 0 -'f t'=. 2 {. (boxxopen y),a: -n=. f #~ -. +./\. f e. '=/' -p=. jpath '~temp/',n -q=. jpath '~temp/httpget.log' -t=. ":{.t,3 -ferase p;q -fail=. 0 -cmd=. HTTPCMD rplc '%O';(dquote p);'%L';(dquote q);'%t';t;'%T';(":TIMEOUT);'%U';f -if. IFIOS +. UNAME-:'Android' do. - require 'socket' - 1!:55 ::0: <p - rc=. 0 [ e=. pp=. '' - whilst. 0 do. - 'rc sk'=. sdsocket_jsocket_'' - if. 0~:rc do. break. end. - rc=. sdconnect_jsocket_ sk;PF_INET_jsocket_;'23.21.67.48';80 - if. 0~:rc do. break. end. - 'rc sent'=. ('GET ',f,' HTTP/1.0',LF2) sdsend_jsocket_ sk;0 - if. 0~:rc do. break. end. - while. ((0=rc)*.(*#m)) [[ 'rc m'=. sdrecv_jsocket_ sk,4096 do. - pp=. pp,m - end. - end. - sdclose_jsocket_ sk - if. 0~:rc do. fail=. 1 - elseif. 1 -.@e. '200 OK' E. (20{.pp) do. fail=. 1 [ e=. ({.~ i.&LF) pp - elseif. #p1=. I. (CRLF,CRLF) E. 500{.pp do. p2=. 4 - elseif. #p1=. I. LF2 E. 500{.pp do. p2=. 2 - elseif. do. fail=. 1 - end. - if. 0=fail do. - ((p2+{.p1)}.pp) 1!:2 <p - else. - if. 0~:rc do. e=. sderror_jsocket_ rc end. - end. -elseif. do. - try. - e=. shellcmd cmd - catch. fail=. 1 end. -end. -if. fail +. 0 >: fsize p do. - if. _1-:msg=. freads q do. - if. 0=#msg=. e do. msg=. 'Unexpected error' end. end. - log 'Connection failed: ',msg - info 'Connection failed:',LF2,msg - r=. 1;msg - ferase p;q -else. - r=. 0;p - ferase q -end. -r -) -httpgetr=: 3 : 0 -res=. httpget y -if. 0 = 0 pick res do. - f=. 1 pick res - txt=. freads f - ferase f - 0;txt -end. -) -install=: 3 : 0 -dat=. getdepend y -'num siz'=. pmview_applycounts dat -many=. 1 < num -msg=. 'Installing ',(":num),' package',many#'s' -msg=. msg,' of ',(many#'total '),'size ',sizefmt siz -log msg -installdo 1 {"1 dat -log 'Done.' -readlocal'' -pacman_init 0 -) -install_console=: 3 : 0 - if. -. init_console 'server' do. '' return. end. - pkgs=. getnames y - if. pkgs -: ,<'all' do. pkgs=. 1 {"1 PKGDATA end. - pkgs=. pkgs (e. # [) ~. (<'base library'), ((pkgnew +. pkgups) # 1&{"1@]) PKGDATA - pkgs=. pkgs -. Ignore - pkgs=. getdepend_console pkgs - if. 0 = num=. #pkgs do. '' return. end. - many=. 1 < num - msg=. 'Installing ',(":num),' package',many#'s' - log msg - installdo pkgs - log 'Done.' - readlocal'' - pacman_init '' - checkstatus'' -) -upgrade_console=: 3 : 0 - if. -. init_console 'read' do. '' return. end. - pkgs=. getnames y - if. (0=#pkgs) +. pkgs -: ,<'all' do. pkgs=. 1{"1 PKGDATA end. - pkgs=. pkgs (e. # [) (pkgups # 1&{"1@])PKGDATA - install_console pkgs -) -installdo=: 3 : 0 -msk=. -. y e. <BASELIB -if. 0 e. msk do. - install_library'' -end. -install_addon each msk # y -) -install_addon=: 3 : 0 -ndx=. ({."1 ZIPS) i. <y -if. ndx = #ZIPS do. EMPTY return. end. -log 'Downloading ',y,'...' -f=. 3 pick ndx { ZIPS -'rc p'=. httpget WWW,'addons/',f -if. rc do. return. end. -log 'Installing ',y,'...' -msg=. unzip p;jpath'~addons' -ferase p -if. 0>:fsize jpath'~addons/',y,'/manifest.ijs' do. - log 'Extraction failed: ',msg - info 'Extraction failed:',LF2,msg - return. -end. -install_addins y -install_config y -) -install_addins=: 3 :0 -fl=. ADDCFG,'addins.txt' -ins=. fixjal2 freads fl -ins=. ins #~ (<y) ~: {."1 ins -ndx=. ({."1 ADDONS) i. <y -ins=. sort ins, 2 {. ndx { ADDONS -(fmtjal2 ins) fwrites fl -) -install_config=: 3 : 0 -ADDLABS=: '' -0!:0 :: ] < ADDCFGIJS -install_labs y -write_config'' -) -install_labs=: 3 : 0 -labs=. dirtree jpath '~addons/',y,'/*.ijt' -if. 0=#labs do. return. end. -pfx=. jpath '~addons/' -labs=. (#pfx) }.each {."1 labs -LABCATEGORY=: '' -0!:0 ::] <jpath '~addons/',y,'/manifest.ijs' -cat=. LABCATEGORY -if. 0 = #cat do. - cat=. toupper1 (y i. '/') {. y -end. -new=. labs ,each <' ',cat -txt=. sort ~. new,<;._2 ADDLABS -ndx=. 4 + (1 i.~ '.ijt'&E.) &> txt -msk=. fexist &> (<pfx) ,each ndx {.each txt -txt=. msk # txt -ADDLABS=: ; txt ,each LF -) -install_library=: 3 : 0 -log 'Downloading base library...' -f=. 1 pick LIB -'rc p'=. httpget WWW,'library/',f -if. rc do. return. end. -log 'Installing base library...' -unzip p;jpath'~system' -ferase p -readlin'' -) -write_config=: 3 : 0 -txt=. 'NB. Addon configuration',LF2 -txt=. txt,'ADDLABS=: 0 : 0',LF,ADDLABS,')',LF -txt fwrites ADDCFGIJS -) -show_console=: 4 : 0 - if. -. init_console 'read' do. '' return. end. - select. x - case. 'search' do. - pkgs=. getnames y - res=. (pkgsearch pkgs) # 1 2 3 4 {"1 PKGDATA - res=. curtailcaption res - case. 'show' do. - pkgs=. getnames y - if. pkgs -: ,<'all' do. pkgs=. 1 {"1 PKGDATA end. - res=. (msk=. pkgshow pkgs) # 5 {"1 PKGDATA - if. #res do. - res=. ,((<'== '), &.> msk # 1 {"1 PKGDATA) ,. res - res=. (2#LF) joinstring (70&foldtext)&.> res - end. - case. 'showinstalled' do. - dat=. (isjpkgout y) {:: (1 2 3 4 {"1 PKGDATA);<y - res=. (-.@pkgnew # ])dat - res=. curtailcaption res - case. 'shownotinstalled' do. - dat=. (isjpkgout y) {:: (1 2 3 4 {"1 PKGDATA);<y - res=. (pkgnew # 0 2 3&{"1@])dat - res=. curtailcaption res - case. 'showupgrade' do. - dat=. (isjpkgout y) {:: (1 2 3 4 {"1 PKGDATA);<y - res=. (pkgups # ])dat - res=. curtailcaption res - case. 'status' do. - res=. checklastupdate'' - res=. res,LF,checkstatus'' - end. - res -) -showfiles_console=: 4 : 0 - if. -. init_console 'read' do. '' return. end. - pkgs=. getnames y - pkgs=. pkgs (e. # [) (-.@pkgnew # 1&{"1@]) PKGDATA - pkgs=. pkgs -. <BASELIB - if. 0=#pkgs do. '' return. end. - fn=. (<'~addons/') ,&.> (pkgs) ,&.> <'/',x,(x-:'history'){::'.ijs';'.txt' - res=. res #~ msk=. (<_1) ~: res=. fread@jpath &.> fn - if. #res do. - res=. ,((<'== '), &.> msk#pkgs) ,. res - res=. (2#LF) joinstring res - end. -) -remove_console=: 3 : 0 - if. -. init_console 'edit' do. '' return. end. - pkgs=. getnames y - if. pkgs -: ,<'all' do. pkgs=. 1 {"1 PKGDATA end. - pkgs=. pkgs (e. # [) (-.@pkgnew # 1&{"1@]) PKGDATA - pkgs=. pkgs -. <BASELIB - if. 0 = num=. #pkgs do. '' return. end. - many=. 1 < num - msg=. 'Removing ',(":num),' package',many#'s' - log msg - remove_addon each pkgs - log 'Done.' - readlocal'' - pacman_init '' - checkstatus'' -) - -remove_addon=: 3 : 0 - log 'Removing ',y,'...' - treepath=. jpath '~addons/',y - if. ((0 < #@dirtree) *. -.@deltree) treepath do. - nf=. #dirtree treepath - nd=. <: # dirpath treepath - nd=. nd + (tolower treepath) e. dirpath jpath '~addons/', '/' taketo y - msg=. (":nd),' directories and ',(":nf),' files not removed.' - log 'Remove failed: ',msg - info 'Remove failed:',LF2,msg - return. - end. - remove_addins y - remove_config y -) -remove_addins=: 3 :0 - fl=. ADDCFG,'addins.txt' - ins=. fixjal2 freads fl - ins=. ins #~ (<y) ~: {."1 ins - (fmtjal2 ins) fwrites fl -) -remove_config=: 3 : 0 - ADDLABS=: '' - 0!:0 :: ] < ADDCFGIJS - remove_labs y - write_config'' -) -remove_labs=: 3 : 0 - txt=. <;._2 ADDLABS - txt=. txt #~ (<jpathsep y) ~: (#y)&{. each txt - ADDLABS=: ; txt ,each LF -) -LOG=: 1 -log=: 3 : 0 -if. LOG do. smoutput y end. -) -logstatus=: 3 : 0 -if. ONLINE do. - log checkstatus'' -end. -) -readlin=: 3 : 0 -LIN=: 6 1 1 >. fixver freads LIBVER -) -readlocal=: 3 : 0 -readlin'' -ADDONS=: fixjal freads ADDCFG,'addons.txt' -ADDINS=: fixjal2 freads ADDCFG,'addins.txt' -REV=: fixrev freads ADDCFG,'revision.txt' -LASTUPD=: fixupd freads ADDCFG,'lastupdate.txt' -LIBS=: fixlibs freads ADDCFG,'library.txt' -LIB=: fixlib LIBS -ZIPS=: fixzips freads ADDCFG,'zips.txt' -EMPTY -) -readtree=: 3 : 0 -f=. ADDCFG,'tree.txt' -tree=. LF -.~ freads f -if. -. (<tree) e. 'current';'stable' do. - tree=. 'current' - writetree tree -end. -tree -) -writetree=: 3 : 0 -y fwritenew ADDCFG,'tree.txt' -) -refreshweb=: 3 : 0 -if. 0 = refreshjal'' do. 0 return. end. -readlocal'' -1 -) -refreshaddins=: 3 : 0 -ADDLABS=: '' -f=. ADDCFG,'addins.txt' -p=. jpath '~addons/' -sd=. ;subdir each subdir p -if. 0=#sd do. - '' fwrite f - write_config'' return. -end. -r=. s=. '' -for_d. sd do. - mft=. freads (>d),'manifest.ijs' - if. mft -: _1 do. continue. end. - VERSION=: '' - 0!:100 mft - ver=. fmtver fixver VERSION - n=. }: (#p) }. >d - n=. '/' (I.n='\') } n - r=. r,n,' ',ver,LF - s=. s,d -end. -r fwritenew f -s=. (#p) }.each }: each s -install_labs each s -write_config'' -) -refreshjal=: 3 : 0 -'rc p'=. httpget WWW,zipext 'jal' -if. rc do. 0 return. end. -unzip p;ADDCFG -ferase p -if. *./ CFGFILES e. {."1 [ 1!:0 ADDCFG,'*' do. 1 return. end. -msg=. 'Could not install the local repository catalog.' -log msg -info msg -0 -) -updatejal=: 3 : 0 - log 'Updating server catalog...' - if. -. init_console 'server' do. '' return. end. - refreshaddins'' - readlocal'' - pacman_init'' - res=. checklastupdate'' - res,LF,checkstatus'' -) -RELIBMSG=: 0 : 0 -You are now using the XX base library, and can switch to the YY base library. - -This will download the YY version of the base library and overwrite existing files. Addons are not affected. - -OK to switch to the YY library? -) -prelib=: 3 : 0 -old=. LIBTREE -new=. (('stable';'current') i. <old) pick 'current';'beta' -msg=. RELIBMSG rplc ('XX';'YY'),.old;new -if. 0 = query SYSNAME;msg do. - info 'Not done.' return. -end. -switchlibrary 1 pick new -) -switchlibrary=: 3 : 0 -'' fwrite LIBVER -writetree LIBTREE=: y -refreshjal'' -readlocal'' -pmview_setpn'' -) -masklib=: 3 : 0 -(1 {"1 y) = <BASELIB -) -pkglater=: 3 : 0 -dat=. (s=.isjpkgout y){:: PKGDATA;<y -if. 0=#dat do. $0 return. end. -loc=. fixvers > (2-s) {"1 dat -srv=. fixvers > (3-s) {"1 dat -{."1 /:"2 srv ,:"1 loc -) -pkgnew=: 3 : 0 -dat=. (s=.isjpkgout y){:: PKGDATA;<y -if. 0=#dat do. $0 return. end. -0 = # &> (2-s) {"1 dat -) -pkgups=: pkgnew < pkglater -pkgsearch=: 3 : 0 - +./"1 +./ y E."1&>"(0 _) 1{"1 PKGDATA -) -pkgshow=: 3 : 0 - y e.~ 1{"1 PKGDATA -) -setshowall=: 3 : 0 -PKGDATA=: (<y) (<(I.DATAMASK);0) } PKGDATA -) -setshownew=: 3 : 0 -ndx=. I. DATAMASK *. pkgnew'' -PKGDATA=: (<y) (<ndx;0) } PKGDATA -) -setshowups=: 3 : 0 -ndx=. I. DATAMASK *. pkgups'' -PKGDATA=: (<y) (<ndx;0) } PKGDATA -) -splitlib=: 3 : 0 -if. 0=#y do. - 2 $ <y return. -end. -msk=. masklib y -(msk#y) ; <(-.msk)#y -) -pacman_init=: 3 : 0 -dat=. ADDONS #~ ({."1 ADDONS) e. {."1 ZIPS -if. 0=#dat do. - dat=. i.0 6 -else. - ndx=. ({."1 ADDINS) i. {."1 dat - ins=. ndx { (1 {"1 ADDINS),<'' - dat=. dat,.<'' - dat=. 0 5 1 3 4 2 {"1 dat - dat=. ins 1 }"0 1 dat -end. -lib=. 'base library';(fmtver LIN);(fmtver 0 pick LIB);'base library scripts';LIBDESC;'' -dat=. dat,lib -dat=. (<0),.dat -PKGDATA=: sort dat -nms=. 1 {"1 PKGDATA -nms=. ~. (nms i.&> '/') {.each nms -SECTION=: 'All';nms -DATAMASK=: (#PKGDATA) $ 1 -EMPTY -) -init_console=: 3 : 0 - if. 0=#y do. y=. 'read' end. - select. y - fcase. 'edit';'server' do. - if. -. checkaccess'' do. 0 return. end. - case. 'read' do. - if. -. checkaddonsdir'' do. 0 return. end. - setfiles'' - readlocal'' - pacman_init '' - res=. 1 - case. do. res=. 0 - end. - if. y -: 'server' do. res=. getserver'' end. - res -) -jpkg=: 4 : 0 - select. x - case. 'history';'manifest' do. - x showfiles_console y - case. 'install' do. - install_console y - case. 'reinstall' do. - remove_console y - install_console y - case. 'remove' do. - remove_console y - case. ;:'show search showinstalled shownotinstalled showupgrade status' do. - x show_console y - case. 'update' do. - updatejal '' - case. 'upgrade' do. - upgrade_console y - case. do. - msg=. 'Valid options are:',LF - msg=. msg,' history, install, manifest, remove, reinstall, show, search,',LF - msg=. msg,' showinstalled, shownotinstalled, showupgrade, status,',LF - msg,' update, upgrade' - end. -) -do_install=: 3 : 0 -if. -. checkaccess_jpacman_ '' do. return. end. -'update' jpkg '' -select. y -case. 'qtide';'angle' do. - 'install' jpkg 'base library ide/qt' - getqtbin (y-:'angle'){::0;'angle' - msg=. (+/ 2 1 * IFWIN,'Darwin'-:UNAME) pick 'jqt.sh';'the jqt icon';'jqt.cmd' - smoutput 'exit and restart J using ',msg -case. 'all' do. - 'install' jpkg 'all' - getqtbin 0 -end. -) -do_getqtbin=: 3 : 0 -smoutput 'Installing JQt binaries...' -if. 'Linux'-:UNAME do. - if. IFRASPI do. - z=. 'jqt-raspi-32.tar.gz' - else. - z=. 'jqt-',((y-:'slim') pick 'linux';'slim'),'-',(IF64 pick 'x86';'x64'),'.tar.gz' - end. - z1=. 'libjqt.so' -elseif. IFWIN do. - z=. 'jqt-win',((y-:'slim')#'slim'),'-',(IF64 pick 'x86';'x64'),'.zip' - z1=. 'jqt.dll' -elseif. do. - z=. 'jqt-mac',((y-:'slim')#'slim'),'-',(IF64 pick 'x86';'x64'),'.zip' - z1=. 'libjqt.dylib' -end. -'rc p'=. httpget_jpacman_ 'http://www.jsoftware.com/download/j802/qtide/',z -if. rc do. - smoutput 'unable to download: ',z return. -end. -d=. jpath '~bin' -if. IFWIN do. - unzip_jpacman_ p;d -else. - if. 'Linux'-:UNAME do. - if. (0~:FHS) do. - if. IFRASPI do. - d1=. '/usr/lib/arm-linux-gnueabihf/.' - elseif. IF64 do. - d1=. '/usr/lib/x86_64-linux-gnu/.' - elseif. do. - d1=. '/usr/lib/i386-linux-gnu/.' - end. - hostcmd_jpacman_ 'cd /usr/bin && tar --no-same-owner --no-same-permissions -xzf ',(dquote p), ' && chmod 755 jqt && chmod 644 libjqt.so && mv libjqt.so ',d1 - else. - hostcmd_jpacman_ 'cd ',(dquote d),' && tar xzf ',(dquote p) - end. - else. - hostcmd_jpacman_ 'unzip -o ',(dquote p),' -d ',dquote d - end. -end. -ferase p -if. #1!:0 ((0~:FHS)*.'Linux'-:UNAME){::(jpath '~bin/',z1);'/usr/bin/jqt' do. - m=. 'Finished install of JQt binaries.' -else. - m=. 'Unable to install JQt binaries.',LF - m=. m,'check that you have write permission for: ',LF,((0~:FHS)*.'Linux'-:UNAME){::(jpath '~bin');'/usr/bin' -end. -smoutput m -if. 'Linux'-:UNAME do. return. end. - -tgt=. jpath IFWIN{::'~install/Qt';'~bin/Qt5Core.dll' -y=. (*#y){::0;y -smoutput 'Installing Qt library...' -if. IFWIN do. - z=. 'qt53-',((y-:'angle') pick 'win';'angle'),'-',((y-:'slim')#'slim-'),(IF64 pick 'x86';'x64'),'.zip' -else. - z=. 'qt53-mac-',((y-:'slim')#'slim-'),(IF64 pick 'x86';'x64'),'.zip' -end. -'rc p'=. httpget_jpacman_ 'http://www.jsoftware.com/download/j802/qtlib/',z -if. rc do. - smoutput 'unable to download: ',z return. -end. -d=. jpath IFWIN{::'~install';'~bin' -if. IFWIN do. - unzip_jpacman_ p;d -else. - hostcmd_jpacman_ 'unzip -o ',(dquote p),' -d ',dquote d -end. -ferase p -if. #1!:0 tgt do. - m=. 'Finished install of Qt binaries.' -else. - m=. 'Unable to install Qt binaries.',LF - m=. m,'check that you have write permission for: ',LF,IFWIN{::tgt;jpath'~bin' -end. -smoutput m - -) -jpkg_z_=: 3 : 0 - 'help' jpkg y - : - a=. conew 'jpacman' - res=. x jpkg__a y - destroy__a'' - res -) -jpkgv_z_=: (<@:>"1@|:^:(0 ~: #))@jpkg
\ No newline at end of file |