----------------------------------------------------------------------- -- secret-tool -- Example of usage for the Secret service API -- Copyright (C) 2017 Stephane Carrez -- Written by Stephane Carrez (Stephane.Carrez@gmail.com) -- -- 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.Text_IO; with Secret.Services; with Secret.Attributes; with Secret.Values; procedure Secret.Tool is Count : constant Natural := Ada.Command_Line.Argument_Count; Service : Secret.Services.Service_Type; List : Secret.Attributes.Map; Value : Secret.Values.Secret_Type; begin Service.Initialize; List.Insert ("secret-tool", "key-password"); List.Insert ("user", "joe"); List.Insert ("email", "joe@gmail.com"); if Count = 1 and then Ada.Command_Line.Argument (1) = "get" then Value := Service.Lookup (List); if Value.Is_Null then Ada.Text_IO.Put_Line ("The secret value is not found"); else Ada.Text_IO.Put_Line ("Secret value is: " & Value.Get_Value); end if; elsif Count = 2 and then Ada.Command_Line.Argument (1) = "set" then Value := Secret.Values.Create (Ada.Command_Line.Argument (2)); Service.Store (List, "Secret tool password", Value); elsif Count = 1 and then Ada.Command_Line.Argument (1) = "del" then Service.Remove (List); else Ada.Text_IO.Put_Line ("Usage: secret-tool [get|del]"); Ada.Text_IO.Put_Line (" secret-tool set value"); Ada.Text_IO.Put_Line ("set set the secret value"); Ada.Text_IO.Put_Line ("get get the secret value"); Ada.Text_IO.Put_Line ("del delete the secret value"); end if; end Secret.Tool;