home *** CD-ROM | disk | FTP | other *** search
/ Mods Anthology 2 / Music-AmigaModsAnthology-2of4-Psychodk.mcsteam.iso / Tools / Amiga / Misc / -Archives- / xList_106.lha / xList_v1.06 / xListing.sh < prev   
Text File  |  1996-02-07  |  3KB  |  160 lines

  1. # This script is Public Domain => You should Modify it !!!
  2. # It makes a recursive listing of a dir using xList
  3.  
  4. # main:
  5.  
  6. if $_version < 520
  7.     echo "This script needs at least Csh 5.20"
  8.     return 0
  9. endif
  10.  
  11. echo "Csh script for xList 1.05"
  12.  
  13. if -v 1                        # if arg detected
  14.    if -nd $1                # if arg is not a dir
  15.       set arg1 @filereq( "Select a directory to scan:" ) # popup FileReq.
  16.       if $arg1 = ""
  17.          echo "*** No dir selected."
  18.          return 0
  19.       endif
  20.    else                    # else it is a dir
  21.       set arg1 $1                # store dir in var 2
  22.    endif
  23. else                        # no args: popup filerequester
  24.    set arg1 @filereq( "Select a directory to scan:" )
  25.    if $arg1 = ""
  26.       echo "*** No dir selected."
  27.       return 0
  28.    endif
  29. endif
  30.  
  31. label mychkdir            # going to check if it is really a dir
  32.  
  33. if -nd $arg1
  34.    set arg1 @filereq( "Select a directory to scan:" )
  35.    goto mychkdir
  36. endif
  37.  
  38. date -s
  39. resident c:xList >nil:
  40.  
  41. goto init_aliases
  42. label init1_done
  43. goto init_variables
  44. label init2_done
  45.  
  46. echo Scanning dir...
  47. ls >t:x2 -cghz "%m%-16n%.5w  " $arg1        # building index
  48. init
  49. tackon wildcard $arg1 ".../*"
  50. ls -cqhnd $wildcard | readfile alldirs        # finding dirs and subdirs
  51. foreach i ( $alldirs ) "cmplx $i"
  52. end
  53.  
  54. return 0
  55. ###########
  56.  
  57. # subroutines:
  58.  
  59. label init_aliases
  60.  
  61. set stk ""
  62. alias  pushd "%a set stk $_cwd @subwords( $stk 1 10 );\\cd $a
  63. alias  popd  "\\cd @first( $stk );set stk @subwords( $stk 2 10 )
  64.  
  65. alias init {
  66. echo "" >$dest2
  67. echo -n >>$dest2 "                        Listing on: "
  68. day $dest2
  69. echo >>$dest2 ""
  70. }
  71. # insert in the alias above 'type >$dest2 "my_intro"'
  72. #
  73.  
  74. alias day {
  75. %f 
  76. unset dat2
  77. echo >env:dat2 `date`
  78. strlen slen $dat2
  79. dec slen 9
  80. strleft dat2 $dat2 $slen
  81. echo >>$f $dat2
  82. delete >nil: env:dat2
  83. }
  84.  
  85. alias end {
  86. echo `date -r` >env:da1
  87. echo @nameroot( $da1 ) >env:da2
  88. echo Elapsed time: @rpn( $da2 60 / ) min @rpn( $da2 60 % ) s.
  89. echo >>$dest2 Total number of files: $ntotal
  90. echo >>$dest2 ""
  91. echo >>$dest2 "--------------------------------- ╖I╖N╖D╖E╖X╖ ---------------------------------
  92. cat >>$dest2 t:x2
  93. echo >>$dest2 "-------------------------------------------------------------------------------
  94. echo Total number of files: $ntotal
  95. cat >>$dest2 $dest
  96. delete >nil: env:da1 env:da2 $dest t:x2 t:c1
  97. shcrunch
  98. resident -r xList >nil:
  99. unset alldirs choice wildcard dat2 dummy dest dest2 nli nline1 ntotal packer 2 tmp slen
  100. return 0
  101. }
  102.  
  103. # insert 'type >>$dest2 "my_endtext"' in the alias above, before 'shcrunch'
  104. #
  105.  
  106. alias shcrunch {
  107. if -f c:xpk
  108.    set packer 1
  109.    goto crunching
  110. else
  111.    if -f c:packx
  112.       set packer 2
  113.       goto crunching
  114.    endif
  115. endif
  116. return 0
  117.  
  118. label crunching
  119. echo -n "Crunch the list (with xpkNUKE) ? (y/N): "
  120. input -r choice
  121. if -n $choice = y
  122.    echo ""
  123.    return 0
  124. else
  125.    echo Crunching...
  126.    if $packer = 1
  127.       c:xpk -m NUKE $dest2
  128.    else
  129.       c:packx $dest2 lib=nuke
  130.    endif
  131. endif
  132. }
  133.  
  134. alias cmplx {
  135. %i 
  136. echo $i
  137. xList >>$dest $i LF=4 DL
  138. inc ntotal $xltotal
  139. label endloop
  140. }
  141.  
  142. #goto nocomms # -(2)-
  143. label commsdone
  144. goto init1_done
  145.  
  146.  
  147. label init_variables
  148. set dest2 ram:Listing.txt
  149. set dest t:listx
  150. set tmp t:c1
  151. echo -n >$dest ""
  152. echo -n >$dest2 ""
  153. echo -n >$tmp ""
  154. set ntotal 0
  155. set dummy yes
  156. goto init2_done
  157.  
  158. # tHanX for reading this up to the end, mate !
  159. # *** Signoff: Reez, the mad modulelister (&raytracoder)
  160.