Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Change directory while crawlingArthur de Jong2015-02-211-8/+14
| | | | | | The crawler now chanes to the directoties that are crawled and uses stat() on relative paths instead of using abolsute paths for all operations. This brings about a 10% reducting in crawling time.
* Handle non-existing directories in repositoryArthur de Jong2015-02-211-0/+8
|
* Handle failing to add a file more gracefullyArthur de Jong2015-02-211-1/+5
|
* Use XDG cache directory by defaultArthur de Jong2015-02-211-2/+10
|
* Handle path encoring errorsArthur de Jong2015-02-211-5/+10
| | | | | This currently ignores files with filenames that have an unknown encoding. This is far from ideal though.
* Fix writing of passphrase filesArthur de Jong2015-02-121-7/+16
| | | | | | This ensures that the correct old files are removed and the current file is correctly renamed to avoid the situation when the encryption type is changed.
* Simplify read_file() and write_file()Arthur de Jong2015-02-121-44/+40
| | | | | | This integrates compression and encryption detection into the read_file() function and filename expansion into the write_file() function (adding arguments for compression and encryption).
* Refactor writing restore scriptArthur de Jong2015-02-121-85/+104
| | | | | Move writing to separate function and use file name in the repository to select the correct extract and decrypt commands for use in restore.sh.
* Implement xz compressionArthur de Jong2015-02-123-2/+22
|
* Use a slightly more efficient crawlerArthur de Jong2015-02-121-35/+45
| | | | | This replaces a call to os.walk() with one to os.listdir() to avoid calling stat() twice on each file and directory encountered.
* Update configuration from command-lineArthur de Jong2015-02-121-25/+23
| | | | | This updates properties of the Config class with arguments on the command line. It also includes a few configuration changes.
* Improvements to the way gpg is calledArthur de Jong2015-02-121-7/+8
|
* Implement a set-keys commandArthur de Jong2015-02-123-35/+129
| | | | | | This configures which PGP keys should be able to decrypt the backup. At least for one of the keys specified the private key should available during backup runs to be able to verify repository meta-data.
* Implement bzip2 compressionArthur de Jong2015-02-123-2/+17
|
* Initial version of command-line handlingArthur de Jong2015-02-123-16/+120
|
* Refactor filtersArthur de Jong2015-02-122-67/+208
| | | | | | | | | | | | This prepares for configuration of compression and encryption. The subprocess-related readers and writers have been moved to a separate module and abstracted by Filter objects. The repository now includes functions for detecting compression and encryption, based on file names in the repository. The restore script is now partially generated from commands that are specified in the configured filters.
* Move crawler-related functions to new moduleArthur de Jong2015-02-123-106/+96
|
* Introduce listdir() in the repositoryArthur de Jong2015-02-121-6/+14
|
* Fix problem in ordering files and directories inside tar ↵Arthur de Jong2015-02-121-27/+22
| | | | | | | | | | files Now entries are stored in the order they are found when crawling to ensure that directory contents is extracted together. Also, it is not really neccesary to store directory entries after the files that contain them but they need to be together in order for tar to do the extracting correctly.
* Also pick up symlinks to directoriesArthur de Jong2015-02-121-0/+4
|
* Resync metadata from repositoryArthur de Jong2015-02-121-6/+95
| | | | | | | | This scans the repository for archive files in the repository and updates the list of archives in the metadata cache. This also ensures that JSON is consistently encoded and checks subcommand exit status.
* Improve restore scriptArthur de Jong2015-02-121-63/+117
| | | | | | | | | | This encrypts the extractlist, makes a JSON dump of the files in the snapshot and makes a JSON dump of each created archive. It also passes -p to tar when extracting, creates a proper temporary directory for extracting temporary files This also refactors some bits of FileRepository to be simpler and allow for different backends in the future.
* Introduce gzip compression and GPG encryptionArthur de Jong2015-01-251-4/+74
| | | | | | This uses subprocesses for compression and encryption using file-like Filter classes. Encryption is done using a (currently plain text) passphrase file.
* Introduce Config and FileRepository classesArthur de Jong2015-01-251-30/+115
|
* Re-organise code and name archivesArthur de Jong2015-01-251-120/+144
| | | | | | | | This moves much of the queries from the MetaData class to the place where they are used and adds some comments. Archive names are built up using a timestamp and a random string to avoid collisions while remaining orderable.
* Exclude directories from extractlistArthur de Jong2015-01-251-19/+24
| | | | | | This records whether a path is a directory while crawling. It also re-organises the code a bit and limits the extractlist to path elements only.
* Generate a restore scriptArthur de Jong2015-01-251-2/+28
| | | | | The script is supposed to be self-contained and shouls be simple and smart to easily do a full restore of a single snapshot.
* Examine used archivesArthur de Jong2015-01-251-15/+72
| | | | | This does a dummy extract of the selected archives in a temporary table to see how the system would look like.
* Add directories in the right order in the tarballArthur de Jong2015-01-251-2/+39
|
* Initial commitArthur de Jong2015-01-251-0/+235