source: calamares/trunk/fuentes/src/libcalamaresui/viewpages/PythonQtUtilsWrapper.cpp @ 7538

Last change on this file since 7538 was 7538, checked in by kbut, 13 months ago

sync with github

File size: 4.0 KB
Line 
1/* === This file is part of Calamares - <https://github.com/calamares> ===
2 *
3 *   Copyright 2016, Teo Mrnjavac <teo@kde.org>
4 *
5 *   Calamares is free software: you can redistribute it and/or modify
6 *   it under the terms of the GNU General Public License as published by
7 *   the Free Software Foundation, either version 3 of the License, or
8 *   (at your option) any later version.
9 *
10 *   Calamares is distributed in the hope that it will be useful,
11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 *   GNU General Public License for more details.
14 *
15 *   You should have received a copy of the GNU General Public License
16 *   along with Calamares. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include "PythonQtUtilsWrapper.h"
20
21#include "utils/CalamaresUtilsSystem.h"
22#include "utils/CalamaresUtils.h"
23#include "utils/Logger.h"
24
25#include <PythonQt.h>
26
27
28Utils::Utils(QObject* parent)
29    : QObject( parent )
30    , m_exceptionCxt( PythonQt::self()->createUniqueModule() )
31{
32    PythonQt::self()->evalScript( m_exceptionCxt, "import subprocess" );
33}
34
35
36void
37Utils::debug(const QString& s) const
38{
39    cDebug() << "PythonQt DBG>" << s;
40}
41
42
43int
44Utils::mount( const QString& device_path,
45              const QString& mount_point,
46              const QString& filesystem_name,
47              const QString& options ) const
48{
49    return CalamaresUtils::System::instance()->
50            mount( device_path, mount_point, filesystem_name, options );
51}
52
53
54int
55Utils::target_env_call( const QString& command,
56                        const QString& stdin,
57                        int timeout ) const
58{
59    return CalamaresUtils::System::instance()->
60            targetEnvCall( command, QString(), stdin, timeout );
61}
62
63
64int
65Utils::target_env_call( const QStringList& args,
66                        const QString& stdin,
67                        int timeout ) const
68{
69    return CalamaresUtils::System::instance()->
70            targetEnvCall( args, QString(), stdin, timeout );
71}
72
73
74int
75Utils::check_target_env_call( const QString& command,
76                              const QString& stdin,
77                              int timeout ) const
78{
79    int ec = target_env_call( command, stdin, timeout );
80    return _handle_check_target_env_call_error( ec, command );
81}
82
83
84int
85Utils::check_target_env_call( const QStringList& args,
86                              const QString& stdin,
87                              int timeout) const
88{
89    int ec = target_env_call( args, stdin, timeout );
90    return _handle_check_target_env_call_error( ec, args.join( ' ' ) );
91}
92
93
94QString
95Utils::check_target_env_output( const QString& command,
96                                const QString& stdin,
97                                int timeout ) const
98{
99    QString output;
100    int ec = CalamaresUtils::System::instance()->
101             targetEnvOutput( command,
102                              output,
103                              QString(),
104                              stdin,
105                              timeout );
106    _handle_check_target_env_call_error( ec, command );
107    return output;
108}
109
110
111QString
112Utils::check_target_env_output( const QStringList& args,
113                                const QString& stdin,
114                                int timeout ) const
115{
116    QString output;
117    int ec = CalamaresUtils::System::instance()->
118             targetEnvOutput( args,
119                              output,
120                              QString(),
121                              stdin,
122                              timeout );
123    _handle_check_target_env_call_error( ec, args.join( ' ' ) );
124    return output;
125}
126
127
128QString
129Utils::obscure( const QString& string ) const
130{
131    return CalamaresUtils::obscure( string );
132}
133
134
135int
136Utils::_handle_check_target_env_call_error( int ec, const QString& cmd) const
137{
138    if ( ec )
139    {
140        QString raise = QString( "raise subprocess.CalledProcessError(%1,\"%2\")" )
141                        .arg( ec )
142                        .arg( cmd );
143        PythonQt::self()->evalScript( m_exceptionCxt, raise );
144    }
145    return ec;
146}
Note: See TracBrowser for help on using the repository browser.