-------------------------------------------------------------------------------
-- Copyright 2021, The Septum Developers (see AUTHORS file)
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
-- http://www.apache.org/licenses/LICENSE-2.0
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-------------------------------------------------------------------------------
with Ada.Command_Line;
with Ada.Exceptions;
with Ada.Text_IO;
with GNAT.Traceback.Symbolic;
with SP.Config;
with SP.Interactive;
procedure Septum is
use Ada.Text_IO;
begin
-- Look for a single "--version" flag
if Ada.Command_Line.Argument_Count = 1
and then Ada.Command_Line.Argument (1) = "--version"
then
Put_Line (SP.Version);
return;
end if;
-- Create a local configuration file in the current directory.
if Ada.Command_Line.Argument_Count = 1
and then Ada.Command_Line.Argument (1) = "init"
then
SP.Config.Create_Local_Config;
return;
end if;
-- Don't recognize any other arguments.
if Ada.Command_Line.Argument_Count /= 0 then
Put_Line ("Unrecognized command line arguments.");
New_Line;
Put_Line ("Usage: septum --version print program version");
Put_Line (" septum init creates config directory with empty config");
Put_Line (" septum run interactive search mode");
return;
end if;
SP.Interactive.Main;
exception
when Err : others =>
Put_Line (Ada.Exceptions.Exception_Information (Err));
Put_Line ("Exception traceback: " & GNAT.Traceback.Symbolic.Symbolic_Traceback (Err));
end Septum;