logviewer.txt

(6 KB) Pobierz

alias logview {
  if ($window(@Logviewer) == $null) { window -moabel15 @Logviewer 100 100 450 300 @Logviewer Verdana 12 }
  else { clear -l @Logviewer }
  window -nls @Loglist Verdana 12
  aline -l @Logviewer Log files:
  set %logview.num 1
  :loop
  set %logview.log $findfile($logdir,*.log,%logview.num)
  if (%logview.log == $null) { goto part2 }
  aline -l @Loglist $nopath(%logview.log)
  inc %logview.num 1
  goto loop
  :part2
  set %logview.total $line(@Loglist,0,0)
  set %logview.num 1
  :loop2
  if (%logview.num > %logview.total) { goto end }
  aline -l @Logviewer $line(@Loglist,%logview.num)
  inc %logview.num 1
  goto loop2
  :end
  aline @Logviewer End log listing.
  window -c @Loglist
  unset %logview.num %logview.log $logview.total
}
alias logview.viewlog {
  if ($1 != $null) {
    set %logview.temp $1 $+ .log
    set %logview.file $logdir $+ %logview.temp
    if ($exists(%logview.file)) {
      set %nameof.currentlog %logview.temp
      logview
      clear @Logviewer
      aline @Logviewer Viewing %logview.temp ( $+ $file(%logview.file).size bytes):
      titlebar @Logviewer ( $+ %logview.temp $+ )
      loadbuf -p @Logviewer %logview.file
      sline @Logviewer 20
      halt
    }
  }
  if (($sline(@Logviewer,1).ln == 1) || ($sline(@Logviewer,1) == $null)) { halt }
  set %logview.file $logdir $+ $sline(@Logviewer,1)
  set %nameof.currentlog $sline(@Logviewer,1)
  clear @Logviewer
  aline @Logviewer Viewing  $+ $sline(@Logviewer,1) ( $+ $file(%logview.file).size bytes):
  titlebar @Logviewer ( $+ $sline(@Logviewer,1) $+ )
  loadbuf -p @Logviewer %logview.file
  sline @Logviewer 20
  unset %logview.file
}
alias -l logview.search {
  if (%nameof.currentlog == $null) { aline @Logviewer 4Error!  You must view a log first. | halt }
  if ($window(@IDTLogsearch) == $null) { window -moabel @IDTLogsearch 150 150 450 300 @IDTLogsearch Verdana 12 }
  else { /clear @IDTLogsearch }
  set %logview.file $logdir $+ %nameof.currentlog
  titlebar @IDTLogsearch ( $+ %nameof.currentlog $+ )
  set %logview.searchstring * [ $+ [ $$?="Text to search for?" ] $+ ] *
  aline @IDTLogsearch Searching %nameof.currentlog for %logview.searchstring 
  aline @IDTLogsearch [#]____________[Text]________________________________________
  filter -fwnp %logview.file @IDTLogsearch %logview.searchstring
  unset %logview.*
}
alias -l logview.gotoline {
  if (($sline(@IDTLogsearch,1).ln == 1) || ($sline(@IDTLogsearch,1).ln == 2) || ($sline(@IDTLogsearch,1).ln == $null)) { halt }
  sline @Logviewer $calc($gettok($sline(@IDTLogsearch,1),1,32) + 2)
  window -a @Logviewer
}
alias -l logview.delete {
  if (($sline(@Logviewer,1).ln == 1) || ($sline(@Logviewer,1) == $null)) { halt }
  set %logview.total $sline(@Logviewer,0)
  set %logview.num 1
  :loop
  if (%logview.num > %logview.total) { goto mid }
  set %logview.files %logview.files $sline(@Logviewer,%logview.num) $+ ,
  inc %logview.num | goto loop
  :mid
  set %logview.filen $calc($len(%logview.files) - 1)
  set %logview.files $left(%logview.files,%logview.filen)
  set %logview.yesno $$?!="Do you want to delete these files ( $+ %logview.files $+ )?"
  if (%logview.yesno) {
    set %logview.num 1
    :loop2
    if (%logview.num > %logview.total) { goto end }
    set %logview.file $logdir $+ $sline(@Logviewer,%logview.num)
    if (%nameof.currentlog == $sline(@Logviewer,%logview.num)) { clear @Logviewer | unset %nameof.currentlog }
    .remove %logview.file
    inc %logview.num 1 | goto loop2
  }
  :end
  unset %logview.*
  logview
}
alias -l logview.copy {
  if (($sline(@Logviewer,1).ln == 1) || ($sline(@Logviewer,1) == $null)) { halt }
  set %logview.total $sline(@Logviewer,0)
  set %logview.num 1
  :loop
  if (%logview.num > %logview.total) { goto mid }
  set %logview.files %logview.files $sline(@Logviewer,%logview.num) $+ ,
  inc %logview.num | goto loop
  :mid
  set %logview.filen $calc($len(%logview.files) - 1)
  set %logview.files $left(%logview.files,%logview.filen)
  set %logview.yesno $$?!="Do you want to copy these files ( $+ %logview.files $+ )?"
  if (%logview.yesno) {
    set %logview.dir $$sdir="Select a directory to copy to:"
    set %logview.num 1
    :loop2
    if (%logview.num > %logview.total) { goto end }
    set %logview.file $logdir $+ $sline(@Logviewer,%logview.num)
    if (%nameof.currentlog == $sline(@Logviewer,%logview.num)) { clear @Logviewer | unset %nameof.currentlog }
    copy %logview.file [ %logview.dir ] $+ $sline(@Logviewer,%logview.num)
    inc %logview.num 1 | goto loop2
  }
  :end
  unset %logview.*
  logview
}
alias -l logview.rename {
  if (($sline(@Logviewer,1).ln == 1) || ($sline(@Logviewer,1) == $null)) { halt }
  set %logview.total $sline(@Logviewer,0)
  set %logview.num 1
  :loop
  if (%logview.num > %logview.total) { goto mid }
  set %logview.files %logview.files $sline(@Logviewer,%logview.num) $+ ,
  inc %logview.num | goto loop
  :mid
  set %logview.filen $calc($len(%logview.files) - 1)
  set %logview.files $left(%logview.files,%logview.filen)
  set %logview.yesno $$?!="Do you want to rename these files ( $+ %logview.files $+ )?"
  if (%logview.yesno) {
    set %logview.num 1
    :loop2
    if (%logview.num > %logview.total) { goto end }
    set %logview.file $logdir $+ $sline(@Logviewer,%logview.num)
    if (%nameof.currentlog == $sline(@Logviewer,%logview.num)) { clear @Logviewer | unset %nameof.currentlog }
    rename $logdir $+ $sline(@Logviewer,%logview.num) $logdir $+ $$?="Please enter a new file name for $sline(@Logviewer,%logview.num) $+ :"
    inc %logview.num 1 | goto loop2
  }
  :end
  unset %logview.*
  logview
}
alias -l logview.notepad {
  if (($sline(@Logviewer,1).ln == 1) || ($sline(@Logviewer,1) == $null)) { halt }
  set %logview.total $sline(@Logviewer,0)
  set %logview.num 1
  :loop
  if (%logview.num > %logview.total) { goto end }
  set %logview.file $logdir $+ $sline(@Logviewer,%logview.num)
  run notepad.exe %logview.file
  inc %logview.num
  goto loop
  :end
  unset %logview.*
  logview
}

menu @Logviewer {
  dclick logview.viewlog $sline(@Logviewer,1)
  List logs:/logview
  View log:/logview.viewlog $sline(@Logviewer,1)
  Search log:/logview.search
  Copy logs:/logview.copy
  Delete logs:/logview.delete
  Rename logs:/logview.rename
  Open logs in notepad:/logview.notepad
  Clear:/clear @Logviewer
  Close:/window -c @Logviewer
}
menu @IDTLogsearch {
  dclick /logview.gotoline
  Goto line:/logview.gotoline
  Close:/window -c @IDTLogsearch
  ReSearch:/logview.search
}

on *:CLOSE:@Logviewer: { unset %nameof.currentlog }
on 1:UNLOAD: { unset %nameof.currentlog %logview.* }
Zgłoś jeśli naruszono regulamin