// IfsBackupCmd1.bcpl -- operator interface for backup system
// Copyright Xerox Corporation 1979, 1980, 1981

// Last modified January 31, 1981  4:15 PM by Taft


external
[
// outgoing procedures
ExecBackup

// incoming procedures
BackupMount; BackupDismount
BackupStatus; BackupChange; BackupEnable; BackupDisable
BackupRestore; BackupReload; BackupRepeat; BackupDontRepeat
BackupOnLine; BackupOffLine; BackupList
CreateKeywordTable; InsertKeyword; DestroyKeywordTable
TelnetCommandLoop; TelnetCommandQuit
ResetStrings; CloseIFS

// incoming statics
]


//----------------------------------------------------------------------------
let ExecBackup(cs) be
//----------------------------------------------------------------------------
// Top-level command for controlling backup system
[
let kt = CreateKeywordTable(14)
InsertKeyword(kt, "Quit")!0 = TelnetCommandQuit
InsertKeyword(kt, "Status")!0 = BackupStatus
InsertKeyword(kt, "Mount")!0 = BackupMount
InsertKeyword(kt, "Dismount")!0 = BackupDismount
InsertKeyword(kt, "Change")!0 = BackupChange
InsertKeyword(kt, "Enable")!0 = BackupEnable
InsertKeyword(kt, "Disable")!0 = BackupDisable
InsertKeyword(kt, "Restore")!0 = BackupRestore
InsertKeyword(kt, "Reload")!0 = BackupReload
InsertKeyword(kt, "Repeat")!0 = BackupRepeat
InsertKeyword(kt, "Don't")!0 = BackupDontRepeat
InsertKeyword(kt, "OnLine")!0 = BackupOnLine
InsertKeyword(kt, "OffLine")!0 = BackupOffLine
InsertKeyword(kt, "List")!0 = BackupList
ResetStrings()

// fs is an auxiliary file system manipulated by OnLine, OffLine, and List.
// lv fs is passed as the second argument to all command procedures.
let fs = 0
TelnetCommandLoop(kt, "*n**", 0, lv fs, 250)
if fs ne 0 then CloseIFS(fs)

DestroyKeywordTable(kt)
]