function def_save, data=data, site=site , select=select, tar=tar, $
    util=util, nosw=nosw, big_data=big_data
;
nosw=keyword_set(nosw) or keyword_set(util)
;
sw=''
if not keyword_set(nosw) then $
   sw=['sxt','gen','hxt','bcs','wbs','atest','ucon','idlfix']   ; def sw save sets

if keyword_set(site) then sw=[sw,'site']    ; site only if request
dat=weekid(/gt_distpre)             ; weekly file prefixes
;
utl=['gen/soft/rel','sxt/soft/rel']

utl=utl + '/util'
;
if keyword_set(util) then sw=utl        ; on util directories
if sw(0) ne '' then sw='$ys/' + sw      ; relative to /ys 
dat='$ydb/' + dat               ; relative to /ydb
; 
ss=[sw,dat]
;
if keyword_set(select) then begin
   ssm=[ss,'All','DONE']
   save=[-1]
   select=''
   i=0
   while i lt n_elements(ss) do begin
      print,'click on sets to save' 
      i=wmenu(ssm) 
      select=ssm(i)
      save=[save,i]
      ssm(i)=ssm(i) + ' *'
   endwhile
   if strmid(select,0,3) eq 'ALL' then ind=indgen(n_elements(ss)) else $
      ind=save(where(save ge 0))
; no interactive - look to keywords for the answer
endif else begin
   nss=n_elements(sw)
   if keyword_set(data) then nss=nss + n_elements(dat)
   ind=indgen(nss)
endelse
;
if keyword_set(tar) then begin 
   ss=str_replace(ss,'/','_')           ; tar file name
   ss=str_replace(ss,'$')
endif
sets=ss(sort(ss(ind)))
valid=where(sets ne '',count)
if count gt 0 then sets = sets(valid)
return, strtrim(sets,2)
end