-- File: CreateDB.mesa -- Contents: creates a database with name given by command line DIRECTORY DBView, UserExec, UserProfile, Rope, IOStream, MessageWindow; CreateDB: PROGRAM IMPORTS DBView, UserExec, Rope, IOStream, UserProfile, MessageWindow = BEGIN ROPE: TYPE = Rope.Ref; databasePathName: PUBLIC ROPE; dbT: DBView.Transaction; welcomeText: ROPE; StartSquirrel: PROC = BEGIN r: ROPE; ch: CHAR; h: IOStream.Handle← UserExec.GetExecHandle[].commandLineStream; rdbName: ROPE← UserProfile.String[key: "RemoteDatabaseName", default: "<CedarDB>PDB"]; databasePathName← UserProfile.String[key: "LocalDatabaseName", default: "[Local]DB"]; IF (r← h.GetToken[]) # NIL THEN SELECT ch← r.Fetch[0] FROM '/ => IF (Rope.Lower[h.GetChar[]] = 'r) THEN databasePathName← rdbName; '[, '< => databasePathName← Rope.Concat[r, h.GetRope[]]; ENDCASE => IF Rope.Letter[ch] THEN databasePathName← Rope.Concat["[Local]", r]; END; OpenUpDB: PROC = -- Does OpenDatabase call, sets up transaction BEGIN ENABLE DBView.IllegalDatabaseName, DBView.ProtectionViolation, DBView.ServerNotFound => {MessageWindow.Blink[]; MessageWindow.Append["Can't open database!"]; CONTINUE}; [dbT, welcomeText]← DBView.OpenDatabase[databaseName: databasePathName, version: NewOnly]; END; StartSquirrel[]; OpenUpDB[]; DBView.CloseDatabase[]; END.