Release 0.1.54.9
[platform/core/security/key-manager.git] / misc / ckm_db_tool / ui.cpp
1 /*
2  *  Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License
15  */
16 /*
17  * @file       ui.cpp
18  * @author     Mateusz Cegielka (m.cegielka@samsung.com)
19  * @version    1.0
20  */
21
22 #include <dpl/colors.h>
23 #include "ui.h"
24
25 #include <unistd.h>
26
27 namespace CKM {
28
29 namespace UI {
30
31 std::ostream& info()
32 {
33         return std::cerr
34                 << Colors::Text::BOLD_GREEN_BEGIN << "info:"
35                 << Colors::Text::BOLD_GREEN_END << " ";
36 }
37
38 std::ostream& warning()
39 {
40         return std::cerr
41                 << Colors::Text::BOLD_YELLOW_BEGIN << "warning:"
42                 << Colors::Text::BOLD_YELLOW_END << " ";
43 }
44
45 std::ostream& error()
46 {
47         return std::cerr
48                 << Colors::Text::BOLD_RED_BEGIN << "error:"
49                 << Colors::Text::BOLD_RED_END << " ";
50 }
51
52 std::string promptLine(const std::string &prompt)
53 {
54         std::cerr
55                 << Colors::Text::BOLD_WHITE_BEGIN << prompt
56                 << Colors::Text::BOLD_WHITE_END << " ";
57
58         std::string buf;
59         std::getline(std::cin, buf);
60         return buf;
61 }
62
63 std::string promptPassword(const std::string &prompt)
64 {
65         std::string colorPrompt
66                 = Colors::Text::BOLD_WHITE_BEGIN + prompt
67                 + Colors::Text::BOLD_WHITE_END + " ";
68         char *password = getpass(colorPrompt.c_str());
69         return password ? password : "";
70 }
71
72 } // namespace UI
73
74 } // namespace CKM