51 Commits

Author SHA1 Message Date
TheAssassin
3183ee2f4f Mark methods const where possible 2019-07-27 16:37:16 +02:00
TheAssassin
e24b46d291 Change method name to something more meaningful 2019-07-25 17:44:50 +02:00
TheAssassin
956a253428 Return final deployment path
deployFile allows for specifying a directory as destination, and copies
files into there, simulating the behavior of tools like cp. To do that,
it creates the directory, then appends the filename of the input file
to it and uses that as destination for the "copy file" call.

It's pretty handy for some applications to get the full path of the
new file returned by this method directly (doesn't have to implement
this concatenation more than once).
2019-02-06 23:23:48 +01:00
TheAssassin
028d85a070 Explicitly disable all copy/move(-assignment) behavior 2019-01-29 00:03:35 +01:00
TheAssassin
8df605cb19 Use shared pointer to manage PImpl object 2019-01-29 00:02:49 +01:00
TheAssassin
5374e7ece9 Switch to extracted desktop file library 2018-12-22 23:09:04 +01:00
TheAssassin
0b5ab2fc36 Fix return type of setter 2018-11-19 21:51:26 +01:00
TheAssassin
92a1370b30 Be able to use EXPECT_EQ with DesktopFile objects
GoogleTest internally uses operator==(first, second) instead of
first.operator==(second). By implementing the operators outside the
classes, GoogleTest can be made happy.
2018-11-15 23:36:04 +01:00
TheAssassin
1c4e4a3888 Remove redundant setters/getters 2018-11-15 20:53:16 +01:00
TheAssassin
e4bf795211 No need for a string conversion operator
Doesn't make sense here anyway.
2018-11-15 20:44:43 +01:00
TheAssassin
f7975f1b80 Use return types with guaranteed sizes
This will ensure the conversions work equally on both 32-bit platforms
(int == long on 32-bit Linux systems, on 64 bit long > int).
2018-11-15 17:19:42 +01:00
TheAssassin
fbc1d78122 Use custom exceptions for error handling 2018-11-14 10:31:41 +01:00
TheAssassin
d6e6cac6e0 Move libraries into directories following package path 2018-11-10 01:43:36 +01:00
TheAssassin
574a883733 Don't require desktop file's path to exist 2018-11-09 21:28:40 +01:00
TheAssassin
11bbe4d219 Rewrite DesktopFile using own parser 2018-11-09 16:04:40 +01:00
TheAssassin
8a2d57e8d5 Move definition of types into DesktopFile
Types will be shared with future DesktopFileWriter class.
2018-11-09 02:26:09 +01:00
TheAssassin
5ba8b613d6 Fix includes 2018-11-09 00:36:55 +01:00
Alexis López Zubieta
d9ca907da8 Add symlinkFile to the public AppDir interface (#42)
* Add symlinkFile to the public AppDir interface

* Rename AppDir::symlinkFile to AppDir::createSymlink

* change return value to bool

* Remove duplicated header

* Remove blank lines

* Add comment

* Fix test name

* Change createSymlink signature. Name changed to createRelativeSymlink and remove the useRelativePath argument

* Remove commented tests.
2018-11-05 22:10:18 +01:00
TheAssassin
542edaf410 Allow disabling copyright files deployment for debugging 2018-11-04 17:21:36 +01:00
TheAssassin
10df75f877 Extract subprocessing into separate library 2018-10-25 14:34:54 +02:00
TheAssassin
485507a2d1 Buffer subprocess communication 2018-10-07 00:05:59 +02:00
TheAssassin
0ced1390ce Improve ELF library, mk. 2 2018-08-31 17:35:45 +02:00
TheAssassin
dcf1726889 Improve ELF library, mk. 1 2018-08-31 16:48:36 +02:00
TheAssassin
276c6f2d18 Improve multiplexing of subprocess output
Setting pipes to be non-blocking now, and reading using fgets() instead
of getline(), using std::getline() to read lines after non-blocking read
from pipes.

Fixes #14
2018-08-28 22:35:05 +02:00
TheAssassin
e8dee64447 Deprecate --app-name
It's been a useful parameter, but only in some rare edge cases. Instead,
we'll focus more on desktop files, e.g., using the Icon entry contents
for (re)naming icons, etc.
2018-08-25 23:46:13 +02:00
TheAssassin
4de8b6589f Remove unused dependency libmagic
Our use of libmagic isn't very portable, and the checks aren't used
anyway. Therefore removing dependency on libmagic.

Fixes #17.
2018-08-20 23:54:35 +02:00
TheAssassin
7184bcb61d Abort if library is missing 2018-08-11 15:30:06 +02:00
TheAssassin
1c7e768b86 Provide interface to linuxdeploy_util 2018-08-03 00:56:16 +02:00
TheAssassin
bd052a5b1f Add prefix to every line in plugin output 2018-07-10 15:08:17 +02:00
TheAssassin
f06d5e5832 Store plugin name in plugin class 2018-07-10 15:06:39 +02:00
TheAssassin
df61b059d3 Force deploy libraries specified on the CLI 2018-06-30 23:27:02 +02:00
TheAssassin
77ae6072d8 Add int-type log operators 2018-06-20 21:14:30 +02:00
TheAssassin
5f146507ef Fix API level check 2018-06-20 20:42:09 +02:00
TheAssassin
c5d15b54ba Add support for output plugins 2018-06-20 00:44:39 +02:00
TheAssassin
f1d8c807f3 Implement run method for plugins 2018-06-20 00:39:03 +02:00
TheAssassin
65b204ddfd Extract exceptions into own header 2018-06-19 23:32:06 +02:00
TheAssassin
e7664d462b Remove unused comment 2018-06-19 23:30:41 +02:00
TheAssassin
2a769ac3d9 Make findPlugins return plugin name
Required to let users enable them by hand.
2018-06-19 22:47:01 +02:00
TheAssassin
12c7ec7166 Implement standard mechanism to find plugins on the system
First searches in current directory, then searches directories in
$PATH.
2018-06-19 20:46:53 +02:00
TheAssassin
e977d16dc9 Custom plugin base exception
Useful to differentiate between plugin and non-plugin exceptions.
2018-06-19 20:45:16 +02:00
TheAssassin
7c06295cfd Plugin system, mk. 1 2018-06-19 18:02:23 +02:00
TheAssassin
ee42183205 Add deployFile to AppDir class interface 2018-06-11 23:04:37 +02:00
TheAssassin
333c281c20 Add destination parameter to deployExecutable
Code is mostly shared with deployLibrary's destination code.
TODO: refactor: extract to separate function and use in both places
2018-06-11 23:00:28 +02:00
TheAssassin
4a31ecb8b9 Allow setting destination directory in deployLibrary() 2018-06-08 03:06:18 +02:00
TheAssassin
030b21379b Move exception to header
Otherwise, it obviously can't be caught by users of the ElfFile class.
2018-06-04 14:08:24 +02:00
TheAssassin
54029b53b6 Deploy dependencies for existing files in AppDir 2018-06-03 03:24:29 +02:00
TheAssassin
96f77423d6 Remove util.h from public interface
It doesn't belong to the core namespace anyway.
2018-06-02 01:15:07 +02:00
TheAssassin
2bee994f53 Rename icons like <appname>_*.ext to <appname>.ext
This allows users to specify multiple icons like
-i app_res1.png -i app_res2.png -i [...]
linuxdeploy can sort them into the right directory structure, and
their name will be equal to the app name (which is most likely equal
to the Icon entry in the desktop file).
2018-06-01 21:52:43 +02:00
TheAssassin
d1e2f9a5d9 Add stringStartsWith utility function 2018-06-01 21:43:56 +02:00
TheAssassin
8f59b3ef4a Allow using custom AppRun
There's two ways to do this:

 - either place an AppRun in the AppDir before calling linuxdeploy
 - or use the new --custom-apprun parameter

Also fixes a small naming inconsisteny in the info messages.
2018-06-01 02:55:37 +02:00