Overview
Comment: | tools: new "timekey" too to provide a CLI interface to Natools.Time_Keys |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
25d22b98f486f6ef6a1eafa9894fbb6b |
User & Date: | nat on 2015-01-16 22:10:41 |
Other Links: | manifest | tags |
Context
2015-01-23
| ||
22:48 | file_streams: new package for a simple mix-in of stream and file check-in: 3deed33050 user: nat tags: trunk | |
2015-01-16
| ||
22:10 | tools: new "timekey" too to provide a CLI interface to Natools.Time_Keys check-in: 25d22b98f4 user: nat tags: trunk | |
2015-01-15
| ||
22:48 | time_keys-tests: almost-fully covering test suite for time keys check-in: 79433e4065 user: nat tags: trunk | |
Changes
Modified tools.gpr from [9405a0b1c6] to [b20d6d07da].
1 2 3 4 5 6 | with "natools"; project Tools is for Source_Dirs use ("tools"); for Main use ("generate_static_hash_map", "hmac-md5", "hmac-sha1", "hmac-sha256", | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | with "natools"; project Tools is for Source_Dirs use ("tools"); for Main use ("generate_static_hash_map", "hmac-md5", "hmac-sha1", "hmac-sha256", "sxcat", "timekey"); for Object_Dir use Natools'Object_Dir; for Exec_Dir use Natools'Exec_Dir; package Compiler is for Default_Switches use Natools.Compiler'Default_Switches; end Compiler; package Linker is for Default_Switches use Natools.Linker'Default_Switches; end Linker; end Tools; |
Added tools/timekey.adb version [98d2f7e779].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | ------------------------------------------------------------------------------ -- Copyright (c) 2015, Natacha Porté -- -- -- -- Permission to use, copy, modify, and distribute this software for any -- -- purpose with or without fee is hereby granted, provided that the above -- -- copyright notice and this permission notice appear in all copies. -- -- -- -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -- -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ with Ada.Calendar; with Ada.Command_Line; with Ada.Text_IO; with Natools.Time_IO.RFC_3339; with Natools.Time_Keys; procedure Timekey is procedure Process (Line : in String); -- Guess the type of Line and convert it to or from type. procedure Process_Input; -- Read lines from current input and process them. Input_Processed : Boolean := False; Empty : Boolean := True; Verbose : Boolean := False; procedure Process (Line : in String) is begin if Verbose then Ada.Text_IO.Put (Line); end if; if Natools.Time_Keys.Is_Valid (Line) then if Verbose then Ada.Text_IO.Put (" => "); end if; Ada.Text_IO.Put_Line (Natools.Time_IO.RFC_3339.Image (Natools.Time_Keys.To_Time (Line), Duration'Aft, False)); elsif Natools.Time_IO.RFC_3339.Is_Valid (Line) then if Verbose then Ada.Text_IO.Put (" => "); end if; Ada.Text_IO.Put_Line (Natools.Time_Keys.To_Key (Natools.Time_IO.RFC_3339.Value (Line))); end if; end Process; procedure Process_Input is begin if Input_Processed then return; else Input_Processed := True; end if; begin loop Process (Ada.Text_IO.Get_Line); end loop; exception when Ada.Text_IO.End_Error => null; end; end Process_Input; begin for I in 1 .. Ada.Command_Line.Argument_Count loop if Ada.Command_Line.Argument (I) = "-" then Empty := False; Process_Input; elsif Ada.Command_Line.Argument (I) = "-v" then Verbose := True; else Empty := False; Process (Ada.Command_Line.Argument (I)); end if; end loop; if Empty then declare Now : constant Ada.Calendar.Time := Ada.Calendar.Clock; begin if Verbose then Ada.Text_IO.Put (Natools.Time_IO.RFC_3339.Image (Now, Duration'Aft, False) & " => "); end if; Ada.Text_IO.Put_Line (Natools.Time_Keys.To_Key (Now)); end; end if; end Timekey; |