⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sz_update.ep

📁 一个通讯程序源码
💻 EP
字号:
#  CHK=0x4068#--------------------------------------------------------------# sz_update.ep - update local directory## parameters:# %argv(1) = remote directory to copy to# %argv(2) = local directory to copy from# %argv(3) = file list to send# %argv(4) = remote username needed, if any, else null#            if %argv(4) not null, 'su_'+%argv(4)+".ep" must#            exist to su to remote# %argv(5)   name of superior procedure##--------------------------------------------------------------#+:EDITS:*/#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA#:05-10-1992-09:22-wht@n4hgf-%conn can be -1 now#:05-21-1991-20:14-wht@n4hgf-was reporting skipped files as failed transfer#:07-11-1989-16:55-wht-get cmd became lgets#:06-28-1989-19:36-wht-use named variables#:06-25-1989-13:56-wht-new do command syntax#:06-25-1989-12:33-wht-new if/while syntax#:06-22-1989-13:30-wht-creation# variable usage	mkvar $i_csave			# color settings at entry to procedure	mkvar $i_suflag			# true if su occurred	mkvar $i_rtnflag		# return code	mkvar $s_origdir(128)	# original working directory	mkvar $s_ruser(16)		# remote username we started with before su	mkvar $s_rdir(128)		# remote directory we started with	mkvar $s_xtitle(64)		# title for xfer	$i_csave=%colors # get colors at entry	$s0=%argv(0)+' '+%argv(5)+' '+%rname+' '+%argv(1)	logevent $s0	$s_xtitle = 'Connected to '+%rname	ifs %argv(5) != ''		$s_xtitle = $s_xtitle+' - procedure '+%argv(5)# check to make sure we are connected	ifi %conn <= 0	{		color red; echo 'not connected to anyone!'		goto SORRY	}	color lt_blue;  echo 'Connected to '+%rname# save local current directory and change to target	$s_origdir=%dir	color brown	ifs $s_origdir == %argv(2)		echo -n 'local directory already '	else 	{		cd %argv(2)		echo -n 'local directory set to '	}	color yellow; echo %dir# make sure remote username ok	ifs %argv(4) == '' goto REMOTE_CD # if any remote username	do 'bsd_uname'			# get $s0=username	ifi $i0 == 0 goto SORRY	# test failure	$s_ruser = $s0			# save original remote username	ifs $s0 != %argv(4)	{						# need to su		color brown		echo -n 'remote username '		color yellow		echo -n $s0		color brown		echo ' ... su to '+%argv(4)+' now'		color gray		do 'su_'+%argv(4)	# call proc, which calls su.ep		lookfor '% ' 50		# su leaves prompt in buffer: swallow		do 'bsd_uname'		# make sure we su'd		ifi $i0 == 0 goto SORRY		ifs $s0 != %argv(4)	# failed to su?		{			color red;echo 'su to '+%argv(4)+' failed'			goto SORRY		}		$i_suflag = 1		#remember we su'd	}	# now we are proper username on remote# establish proper remote working directoryREMOTE_CD	color gray	$s0 = 'pwd';do 'oneline'	# save old remote ...	$s_rdir = $s0				# ... directory in $s_rdir	ifs $s_rdir != %argv(1)		# if cd needed, do it	{		send 'cd '+%argv(1)		# remote cd		lookfor -e '\n' 50		# echo command		lookfor '% ' 50			# swallow prompt		$s0 = 'pwd'		do 'oneline'			# make sure we got there		ifs $s0 != %argv(1)		# dir change failed		{			color red;echo 'remote cd failed'			goto SORRY;		}	}	color brown;  echo -n 'remote directory '	color yellow; echo    %argv(1)# transfer files	color lt_blue	echo 'sz -n -f '+%argv(3)	icolor $i_csave				# restore colors at entry	sz -nfl $s_xtitle '-w 16384 '+%argv(3)	ifi $i0 > 127				# whoops	{		color red; echo -n '\nTRANSFER FAILED ... '		ifi $i0 == 0x100 echo 'interrupt'		ifi $i0 != 0x100 echo 'termination status '+%itos($i0,04d)		goto SORRY	}	else ifi $i0 > 0	{		color yellow; echo %itos($i0)+' files skipped'	}	lookfor '% ' 50				# swallow prompt	goto RETURNSORRY # whoops	color red;echo 'sz_update failed ... sorry'	$i_rtnflag = 1	# return errorRETURN	echo ''	color brown;  echo -n 'remote user name '	color yellow	ifi $i_suflag != 0			# we su'd	{		send -n %chr(0x04)		# will force a new prompt from remote		echo -n $s_ruser		color brown;  echo ' restored (sent ^D to '+%argv(4)+' shell)'		lookfor '% ' 50			# swallow prompt	}	else		color brown;  echo 'unchanged'	ifs $s_rdir != %argv(1)		# if we did a remote cd	{		send 'cd '+$s_rdir		# restore original		lookfor '\n'		color brown;  echo -n 'remote working directory '		color yellow; echo -n $s_rdir		color brown;  echo    ' restored'	}	else	{		send ''	# spark a prompt		color brown;  echo -n 'remote working directory '		color yellow; echo -n $s_rdir		color brown;  echo    ' unchanged'	}	color brown;  echo -n 'local working directory '	color yellow; echo -n $s_origdir	color brown	ifs $s_origdir != %dir	# restore original directory	{		cd $s_origdir		echo    ' restored'	}	else		echo ' unchanged'	icolor $i_csave		# restore colors at entry	echo ''	return $i_rtnflag	# return selected error code (bomb procedure if error)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -