You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
304 lines
6.2 KiB
304 lines
6.2 KiB
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
%
|
|
% Install mode selection dialog.
|
|
%
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% Some global vars.
|
|
%
|
|
/install.option 255 string def
|
|
|
|
% install types
|
|
/.inst_cdrom 0 def
|
|
/.inst_slp 1 def
|
|
/.inst_ftp 2 def
|
|
/.inst_http 3 def
|
|
/.inst_nfs 4 def
|
|
/.inst_smb 5 def
|
|
/.inst_hd 6 def
|
|
|
|
/install.last .inst_cdrom def
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% Build install mode list.
|
|
%
|
|
% ( ) ==> ( )
|
|
%
|
|
/install.init {
|
|
/xmenu.install .xm_size array def
|
|
|
|
/xmenu xmenu.install def
|
|
|
|
"install" getgfxconfig "slp" eq {
|
|
/install.last .inst_slp def
|
|
} if
|
|
|
|
install.option install.last .inst_cdrom eq { "" } { "install=slp" } ifelse strcpy
|
|
|
|
xmenu .xm_current install.last put
|
|
|
|
% see install types (.inst_*)
|
|
xmenu .xm_list [ is_dvd { "DVD" } { "CD-ROM" } ifelse "SLP" "FTP" "HTTP" "NFS" "SMB / CIFS" ] put
|
|
|
|
pmenu.init
|
|
} def
|
|
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% Update install mode.
|
|
%
|
|
% ( ) ==> ( )
|
|
%
|
|
/install.update {
|
|
/xmenu xmenu.install def
|
|
|
|
xmenu .xm_current get dup .inst_cdrom eq exch .inst_slp eq or {
|
|
/install.last xmenu .xm_current get def
|
|
|
|
install.option install.last .inst_cdrom eq { "" } { "install=slp" } ifelse strcpy
|
|
|
|
/window.action actRedrawPanel def
|
|
|
|
pmenu.update
|
|
} {
|
|
install.dialog
|
|
}
|
|
ifelse
|
|
} def
|
|
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% Show install menu.
|
|
%
|
|
% ( ) => ( )
|
|
%
|
|
/panel.install {
|
|
"install_src" help.setcontext
|
|
|
|
window.xmenu
|
|
dup .xmenu xmenu.install put
|
|
dup .xmenu.update /install.update put
|
|
dup window.init
|
|
window.show
|
|
} def
|
|
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% Return width of panel entry.
|
|
%
|
|
% ( ) => ( width )
|
|
%
|
|
/panel.install.width {
|
|
/xmenu xmenu.install def
|
|
|
|
pmenu.width
|
|
} def
|
|
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% Redraw panel entry.
|
|
%
|
|
% ( panel ) => ( )
|
|
%
|
|
/panel.install.update {
|
|
/xmenu xmenu.install def
|
|
|
|
pmenu.panel.update
|
|
} def
|
|
|
|
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
|
|
/install.dialog {
|
|
|
|
/dia window.dialog def
|
|
|
|
dia .text "" put
|
|
|
|
xmenu .xm_current get
|
|
|
|
dup .inst_hd eq {
|
|
input.edit.hd .undef eq {
|
|
/input.edit.hd [ 63 string 127 string ] def
|
|
} if
|
|
|
|
dia .title txt_harddisk_title put
|
|
|
|
% Must all be of same size!
|
|
dia .ed.list 2 array put
|
|
dia .ed.buffer.list input.edit.hd put
|
|
dia .ed.text.list [ txt_hd_diskdevice txt_directory ] put
|
|
|
|
} if
|
|
|
|
dup .inst_ftp eq {
|
|
input.edit.ftp .undef eq {
|
|
/input.edit.ftp [ 63 string 127 string 31 string 31 string ] def
|
|
} if
|
|
|
|
dia .title txt_ftp_title put
|
|
|
|
% Must all be of same size!
|
|
dia .ed.list 4 array put
|
|
dia .ed.buffer.list input.edit.ftp put
|
|
dia .ed.text.list [ txt_server txt_directory txt_user1 txt_password ] put
|
|
|
|
dia .ed.font font.normal put
|
|
dia .ed.pw_field 3 put
|
|
|
|
} if
|
|
|
|
dup .inst_http eq {
|
|
input.edit.http .undef eq {
|
|
/input.edit.http [ 63 string 127 string ] def
|
|
} if
|
|
|
|
dia .title txt_http_title put
|
|
|
|
% Must all be of same size!
|
|
dia .ed.list 2 array put
|
|
dia .ed.buffer.list input.edit.http put
|
|
dia .ed.text.list [ txt_server txt_directory ] put
|
|
|
|
} if
|
|
|
|
dup .inst_nfs eq {
|
|
input.edit.nfs .undef eq {
|
|
/input.edit.nfs [ 63 string 127 string ] def
|
|
} if
|
|
|
|
dia .title txt_nfs_title put
|
|
|
|
% Must all be of same size!
|
|
dia .ed.list 2 array put
|
|
dia .ed.buffer.list input.edit.nfs put
|
|
dia .ed.text.list [ txt_server txt_directory ] put
|
|
|
|
} if
|
|
|
|
dup .inst_smb eq {
|
|
input.edit.smb .undef eq {
|
|
/input.edit.smb [ 63 string 127 string 31 string 31 string 31 string ] def
|
|
} if
|
|
|
|
dia .title txt_smb_title put
|
|
|
|
% Must all be of same size!
|
|
dia .ed.list 5 array put
|
|
dia .ed.buffer.list input.edit.smb put
|
|
dia .ed.text.list [ txt_server txt_directory txt_domain txt_user2 txt_password ] put
|
|
|
|
dia .ed.font font.normal put
|
|
dia .ed.pw_field 4 put
|
|
|
|
} if
|
|
|
|
pop
|
|
|
|
dia .ed.focus 0 put
|
|
dia .ed.width 300 put
|
|
|
|
dia .buttons [
|
|
button.ok button.default actInstallOK actNoClose or button.setaction
|
|
button.cancel button.notdefault actInstallCancel button.setaction
|
|
] put
|
|
|
|
dia window.init
|
|
dia window.show
|
|
|
|
} def
|
|
|
|
|
|
|
|
/install.ok {
|
|
/xmenu xmenu.install def
|
|
|
|
window.done
|
|
|
|
/install.last xmenu .xm_current get def
|
|
|
|
/window.action actRedrawPanel def
|
|
|
|
pmenu.update
|
|
|
|
xmenu .xm_current get
|
|
|
|
dup .inst_hd eq {
|
|
input.edit.hd
|
|
dup 1 get dup 0 get '/' eq { 1 add } if
|
|
exch 0 get dup 0 get '/' eq { 1 add } if
|
|
"install=hd://%s/%s" install.option sprintf
|
|
} if
|
|
|
|
dup .inst_ftp eq {
|
|
input.edit.ftp
|
|
|
|
"install=ftp://" install.option sprintf
|
|
|
|
% add user name & password
|
|
dup 2 get "" ne {
|
|
dup 2 get "%s" install.option dup length add sprintf
|
|
dup 3 get "" ne {
|
|
dup 3 get ":%s" install.option dup length add sprintf
|
|
} if
|
|
"@" install.option dup length add sprintf
|
|
} if
|
|
|
|
dup 1 get exch 0 get "%s/%s" install.option dup length add sprintf
|
|
} if
|
|
|
|
dup .inst_http eq {
|
|
input.edit.http
|
|
dup 1 get dup 0 get '/' eq { 1 add } if
|
|
exch 0 get
|
|
"install=http://%s/%s" install.option sprintf
|
|
} if
|
|
|
|
dup .inst_nfs eq {
|
|
input.edit.nfs
|
|
dup 1 get dup 0 get '/' eq { 1 add } if
|
|
exch 0 get
|
|
"install=nfs://%s/%s" install.option sprintf
|
|
} if
|
|
|
|
dup .inst_smb eq {
|
|
input.edit.smb
|
|
|
|
"install=smb://" install.option sprintf
|
|
|
|
% add domain
|
|
dup 2 get "" ne {
|
|
dup 2 get "%s;" install.option dup length add sprintf
|
|
} if
|
|
|
|
% add user name & password
|
|
dup 3 get "" ne {
|
|
dup 3 get "%s" install.option dup length add sprintf
|
|
dup 4 get "" ne {
|
|
dup 4 get ":%s" install.option dup length add sprintf
|
|
} if
|
|
"@" install.option dup length add sprintf
|
|
} if
|
|
|
|
dup 1 get exch 0 get "%s/%s" install.option dup length add sprintf
|
|
} if
|
|
|
|
pop
|
|
|
|
} def
|
|
|
|
|
|
/install.cancel {
|
|
/xmenu xmenu.install def
|
|
|
|
xmenu .xm_current install.last put
|
|
|
|
% /window.action actRedrawPanel def
|
|
% pmenu.update
|
|
} def
|
|
|