arun/src/arun-launchers-unix.ads

63 lines
2.2 KiB
Ada

------------------------------------------------------------------------------
--
-- Copyright (C) 2017 R. Tyler Croy <tyler@linux.com>
--
-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU General Public License
-- as published by the Free Software Foundation; either version 2
-- of the License, or (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-- 02110-1301, USA.
------------------------------------------------------------------------------
with Arun;
with GNAT.String_Split;
package Arun.Launchers.Unix is
MAX_FILENAME_LENGTH : constant := 255;
type UnixLauncher is new Arun.Launcher_Type with private;
procedure Initialize (L : in out UnixLauncher);
-- Determine the full path of the snippet based on PATH or other
-- environment variables.
--
-- Will return an empty string if a full path was not discoverable.
--
overriding
function Find_Full_Path (L : in UnixLauncher;
Path_Snippet : in String) return String;
-- Execute a command using the given UnixLauncher with an "Argv"
-- Slice_Set assuming the first argument is the command and
-- subsequent values are arguments for that command.
--
overriding
procedure Execute (L : in UnixLauncher;
Executable_Path : in String;
Argv : in GNAT.String_Split.Slice_Set);
overriding
function Discover_Executables (L : in UnixLauncher)
return Arun.String_Vectors.Vector;
private
type UnixLauncher is new Arun.Launcher_Type with record
Initialized : Boolean := False;
Path_Components : GNAT.String_Split.Slice_Set;
end record;
end Arun.Launchers.Unix;