summaryrefslogtreecommitdiff
path: root/tests/examplefiles/pacman.ijs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examplefiles/pacman.ijs')
-rw-r--r--tests/examplefiles/pacman.ijs1107
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