summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/ipkg.h
blob: 7099ca72c514f828d95b716f13a5e033e6d70e76 (plain)
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
/***************************************************************************
                          ipkg.h  -  description
                             -------------------
    begin                : Sat Aug 31 2002
    copyright            : (C) 2002 by Andy Qua
    email                : andy.qua@blueyonder.co.uk
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef IPKG_H
#define IPKG_H


/**
  *@author Andy Qua
  */

#include <qobject.h>
#include <qstring.h>
#include <qlist.h>

#define FORCE_DEPENDS                           0x0001
#define FORCE_REMOVE                            0x0002
#define FORCE_REINSTALL                         0x0004
#define FORCE_OVERWRITE                         0x0008
#define MAKE_LINKS                              0x0010
#define VERBOSE_WGET                            0x0020
  
class Ipkg : public QObject
{
    Q_OBJECT
public:
    Ipkg();
    ~Ipkg();
    bool runIpkg( );

    void setOption( const char *opt )               { option = opt; }
    void setPackage( const char *pkg )              { package = pkg; }
    void setDestination( const char *dest )         { destination = dest; }
    void setDestinationDir( const char *dir )       { destDir = dir; }
    void setFlags( int fl )                         { flags = fl; }
    void setRuntimeDirectory( const char *dir )     { runtimeDir = dir; }

signals:
    void outputText( const QString &text );
    
private:
    bool createLinks;
    QString option;
    QString package;
    QString destination;
    QString destDir;
    int flags;
    QString runtimeDir;

    QList<QString> *dependantPackages;
    
    int executeIpkgCommand( QString &cmd, const QString option );
    void removeStatusEntry();
    void linkPackage( const QString &packFileName, const QString &dest, const QString &destDir );
    QStringList* getList( const QString &packageFilename, const QString &destDir );
    void processFileList( const QStringList *fileList, const QString &destDir );
    void processLinkDir( const QString &file, const QString &baseDir, const QString &destDir );
};

#endif