Viewing contents of file '../idllib/jhuapls1r/usr2/subtree.pro'
;-------------------------------------------------------------
;+
; NAME:
; SUBTREE
; PURPOSE:
; Display size sorted directory subtree. Good for cleaning.
; CATEGORY:
; CALLING SEQUENCE:
; subtree, dir
; INPUTS:
; dir = starting directory. in
; KEYWORD PARAMETERS:
; OUTPUTS:
; COMMON BLOCKS:
; NOTES:
; MODIFICATION HISTORY:
; R. Sterner, 3 Feb, 1993
;
; Copyright (C) 1993, Johns Hopkins University/Applied Physics Laboratory
; This software may be used, copied, or redistributed as long as it is not
; sold and this copyright notice is reproduced on each copy made. This
; routine is provided as is without any express or implied warranties
; whatsoever. Other limitations apply as described in the file disclaimer.txt.
;-
;-------------------------------------------------------------
pro subtree, dir, help=hlp
if keyword_set(hlp) then begin
print,' Display size sorted directory subtree. Good for cleaning.'
print,' subtree, dir'
print,' dir = starting directory. in'
return
endif
;------ Make sure directory is set --------
if n_elements(dir) eq 0 then cd, curr=dir
;------ Get directory/size pairs --------
spawn,'ls -lFR '+dir+' | grep "^[/t]"', txt
txt = [dir,txt]
;------ Separate directories and sizes ------
n = n_elements(txt)
dd = txt(makei(0,n-1,2))
tsz = txt(makei(1,n-1,2))
;------- Sort on size ------
sz = lonarr(n/2) ; Size as a num.
for i = 0, n/2-1 do sz(i)=long(getwrd(tsz(i),1)) ; Convert.
is = reverse(sort(sz)) ; Sort descending.
for i = 0, n/2-1 do tsz(i)=string(sz(i),form='(i8)') ; Back to string.
;------ Display tree in descending size order -------
printat,1,1,/clear
print,' Blocks Subdirectory'
more,tsz(is)+': '+dd(is)
print,' Total blocks: ',total(sz)
print,' ---==< Press any key to continue >==---'
k = get_kbrd(1)
return
end