mirror of
https://github.com/tomasriveral/NoteWrapper.git
synced 2026-08-12 18:30:45 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7af79c76b1 | ||
|
|
27b8b310cb | ||
|
|
4d228fb911 | ||
|
|
34a2546990 | ||
|
|
7231741f2d | ||
|
|
e86d7e7e03 | ||
|
|
280c329339 | ||
|
|
f7c84136a5 | ||
|
|
f66371137a | ||
|
|
77b5148489 | ||
|
|
d537357802 | ||
|
|
503dddd9be | ||
|
|
fd77eaa4de | ||
|
|
d6fa89785f | ||
|
|
30616b1b6f | ||
|
|
004b536e05 | ||
|
|
c9ee6ca032 | ||
|
|
c8b5538e1c | ||
|
|
2a09d4ee46 | ||
|
|
52169ccbe4 | ||
|
|
31366aeb48 | ||
|
|
e370f98c5e | ||
|
|
5c4bd6ef16 | ||
|
|
6e6ddebb5e | ||
|
|
fcb853e36a | ||
|
|
91d6db6c74 | ||
|
|
833f8c1bd2 | ||
|
|
5328fdc91c | ||
|
|
f85a32f97f | ||
|
|
bc306ca630 | ||
|
|
89c686652e | ||
|
|
d1c19696ff |
@@ -0,0 +1,55 @@
|
|||||||
|
name: Release PR
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release_pr:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Configure git
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
|
||||||
|
- uses: DeterminateSystems/nix-installer-action@v12
|
||||||
|
|
||||||
|
- name: Create release branch
|
||||||
|
run: |
|
||||||
|
git checkout -B release/${{ inputs.version }}
|
||||||
|
|
||||||
|
- name: Set version in flake.nix
|
||||||
|
run: |
|
||||||
|
sed -i "s/version = \".*\";/version = \"${{ inputs.version }}\";/" flake.nix
|
||||||
|
|
||||||
|
- name: Update flake inputs
|
||||||
|
run: nix flake update
|
||||||
|
|
||||||
|
- name: Commit changes
|
||||||
|
run: |
|
||||||
|
git add flake.nix flake.lock
|
||||||
|
git commit -m "chore(release): ${{ inputs.version }}"
|
||||||
|
|
||||||
|
- name: Push branch
|
||||||
|
run: |
|
||||||
|
git push origin release/${{ inputs.version }}
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
run: |
|
||||||
|
gh pr create \
|
||||||
|
--base main \
|
||||||
|
--head release/${{ inputs.version }} \
|
||||||
|
--title "[Automatic] Release PR ${{ inputs.version }}" \
|
||||||
|
--body "Automated release PR.\nAfter the test's succesfull run, create manually a release with a new tag matching ${{ inputs.version }}"
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
name: Weekly Flake Update
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 3 * * 1" # every Monday at 03:00 UTC
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
flake_update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: DeterminateSystems/nix-installer-action@v12
|
||||||
|
|
||||||
|
- name: Set branch name (date)
|
||||||
|
id: vars
|
||||||
|
run: |
|
||||||
|
echo "branch=flake-update/$(date +%Y-%m-%d)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Create update branch
|
||||||
|
run: |
|
||||||
|
git checkout -B ${{ steps.vars.outputs.branch }}
|
||||||
|
|
||||||
|
- name: Update flake inputs
|
||||||
|
run: |
|
||||||
|
nix flake update
|
||||||
|
|
||||||
|
- name: Commit changes
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add flake.lock
|
||||||
|
git commit -m "chore: weekly flake update" || echo "No changes to commit"
|
||||||
|
|
||||||
|
- name: Push branch
|
||||||
|
run: |
|
||||||
|
git push origin ${{ steps.vars.outputs.branch }} --force
|
||||||
|
|
||||||
|
- name: Install GitHub CLI
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y gh
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
run: |
|
||||||
|
gh pr create \
|
||||||
|
--base main \
|
||||||
|
--head ${{ steps.vars.outputs.branch }} \
|
||||||
|
--title "[Automated] Weekly flake update $(date +%Y-%m-%d)" \
|
||||||
|
--body "Automated weekly update of flake inputs for $(date +%Y-%m-%d)."
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -8,3 +8,4 @@ result
|
|||||||
massif.out.*
|
massif.out.*
|
||||||
*.out.*
|
*.out.*
|
||||||
vgcore.*
|
vgcore.*
|
||||||
|
.direnv/
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# NoteWrapper
|
# NoteWrapper
|
||||||
|
|
||||||
|
Note: This project fullfills all my usecases for now, so my main source for features ideas dried out. So if you have good ideas, feel free to open an issue ;)
|
||||||
|
|
||||||
[](https://deepwiki.com/tomasriveral/notewrapper)
|
[](https://deepwiki.com/tomasriveral/notewrapper)
|
||||||
|
|
||||||
## Why?
|
## Why?
|
||||||
@@ -55,6 +57,26 @@ You must also have a [supported editor (and their associated plugin if needed)](
|
|||||||
|
|
||||||
## How to install
|
## How to install
|
||||||
|
|
||||||
|
### Nix flakes
|
||||||
|
|
||||||
|
Add this to your inputs in flake.nix:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
notewrapper = {
|
||||||
|
url = "github:tomasriveral/notewrapper";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
If your flake already inputs nixpkgs and/or flake-utils, you can follow it:
|
||||||
|
```nix
|
||||||
|
notewrapper = {
|
||||||
|
url = "github:tomasriveral/notewrapper;
|
||||||
|
inputs.nixpkgs.follow = "nixpkgs";
|
||||||
|
inputs.flake-utils.follow = "flake-utils";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Building from source
|
||||||
|
|
||||||
1. Install all required dependencies listed above.
|
1. Install all required dependencies listed above.
|
||||||
2. Ensure you have a supported editor installed.
|
2. Ensure you have a supported editor installed.
|
||||||
3. Clone the repository:
|
3. Clone the repository:
|
||||||
@@ -87,7 +109,7 @@ make
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Packaging
|
### Packaging
|
||||||
|
|
||||||
There is currently no official package available for NoteWrapper.
|
There is currently no official package available for NoteWrapper.
|
||||||
|
|
||||||
|
|||||||
-35
@@ -1,35 +0,0 @@
|
|||||||
{ pkgs ? import <nixpkgs> {} }:
|
|
||||||
|
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "notewrapper";
|
|
||||||
version = "1.0";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
pkgs.pkg-config
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
pkgs.ncurses
|
|
||||||
pkgs.cjson
|
|
||||||
pkgs.fzf
|
|
||||||
pkgs.gnused
|
|
||||||
pkgs.ripgrep
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
make
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp notewrapper $out/bin/
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
|
||||||
description = " Journaling and notetaking TUI wrapper on top of neovim, vim and nano.";
|
|
||||||
license = licenses.gpl3Only;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Generated
+78
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779560665,
|
||||||
|
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notewrapper": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779896337,
|
||||||
|
"narHash": "sha256-Xw5vkiN4ei2dkzIRXP0DLSYG8QRjQ0MLvFx2akt96kk=",
|
||||||
|
"owner": "tomasriveral",
|
||||||
|
"repo": "NoteWrapper",
|
||||||
|
"rev": "4d228fb9118f22264863716ac2d74c4ad67edbf8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomasriveral",
|
||||||
|
"repo": "NoteWrapper",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"notewrapper": "notewrapper"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
description = "NoteWrapper";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
notewrapper = {
|
||||||
|
url = "github:tomasriveral/NoteWrapper";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils, notewrapper }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in {
|
||||||
|
packages.default = pkgs.stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "notewrapper";
|
||||||
|
version = "v2.2";
|
||||||
|
|
||||||
|
src = notewrapper;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
pkg-config
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
ncurses
|
||||||
|
cjson
|
||||||
|
vivify
|
||||||
|
rsync
|
||||||
|
ripgrep
|
||||||
|
fzf
|
||||||
|
gnused
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make VERSION=${finalAttrs.version}
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp notewrapper $out/bin/
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
packages = with pkgs; [
|
||||||
|
cjson
|
||||||
|
ncurses
|
||||||
|
pkg-config
|
||||||
|
gdb
|
||||||
|
valgrind
|
||||||
|
clang-tools
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
apps.default = {
|
||||||
|
type = "app";
|
||||||
|
program = "${self.packages.${system}.default}/bin/notewrapper";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ pkgs ? import <nixpkgs> {} }:
|
|
||||||
|
|
||||||
pkgs.mkShell {
|
|
||||||
buildInputs = [
|
|
||||||
pkgs.cjson
|
|
||||||
pkgs.ncurses
|
|
||||||
pkgs.pkg-config
|
|
||||||
pkgs.gdb
|
|
||||||
pkgs.valgrind
|
|
||||||
pkgs.kdePackages.kcachegrind
|
|
||||||
pkgs.clang-tools
|
|
||||||
];
|
|
||||||
}
|
|
||||||
+33
-9
@@ -529,9 +529,14 @@ backup_config_end:
|
|||||||
shouldDebug); // check if editor is supported and if it is installed. If not, it
|
shouldDebug); // check if editor is supported and if it is installed. If not, it
|
||||||
// will throw an error.
|
// will throw an error.
|
||||||
|
|
||||||
|
int *backupMessage = malloc(sizeof(int)); // Used later to set the backuping message.
|
||||||
|
*backupMessage = 0; // default don't show the message
|
||||||
|
int forceBackup = 0;
|
||||||
if (doesBackup) {
|
if (doesBackup) {
|
||||||
debug("Handling backup");
|
debug("Handling normal backup");
|
||||||
handleBackups(directoriesArray, numDirectories, backupDirectoriesArray, homedir, interval, (const char **)rsyncArgs, rsyncArgsNumber, shouldDebug);
|
forceBackup = 0;
|
||||||
|
handleBackups(directoriesArray, numDirectories, backupDirectoriesArray, homedir, interval, (const char **)rsyncArgs, rsyncArgsNumber, forceBackup, backupMessage, shouldDebug);
|
||||||
|
debug("backupMessage was set to %d by a normal backup", *backupMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
initscr(); // initialize ncurses
|
initscr(); // initialize ncurses
|
||||||
@@ -572,13 +577,26 @@ backup_config_end:
|
|||||||
}
|
}
|
||||||
altDebug("└ ------------------------------\n");
|
altDebug("└ ------------------------------\n");
|
||||||
}
|
}
|
||||||
|
int extraOptions = 3;
|
||||||
// adds "create a new vault" into the vaultsArray
|
if (doesBackup) {
|
||||||
const int extraOptions = 3;
|
extraOptions++; // space for "Backup now" button
|
||||||
|
}
|
||||||
|
if (*backupMessage) {
|
||||||
|
extraOptions++;
|
||||||
|
}
|
||||||
vaultsArray = realloc(vaultsArray, (vaultsCount + extraOptions) * sizeof(char *)); // resize vaultsArray to fit the extra options
|
vaultsArray = realloc(vaultsArray, (vaultsCount + extraOptions) * sizeof(char *)); // resize vaultsArray to fit the extra options
|
||||||
vaultsArray[vaultsCount] = "Create a new vault"; // some more options that are not vaults
|
int index = 0;
|
||||||
vaultsArray[vaultsCount + 1] = "Settings";
|
vaultsArray[vaultsCount + index++] = "Create a new vault"; // some more options that are not vaults
|
||||||
vaultsArray[vaultsCount + 2] = "Quit (Ctrl+C)";
|
vaultsArray[vaultsCount + index++] = "Settings";
|
||||||
|
if (doesBackup) {
|
||||||
|
vaultsArray[vaultsCount + index++] = "Backup now";
|
||||||
|
}
|
||||||
|
vaultsArray[vaultsCount + index++] = "Quit (Ctrl+C)";
|
||||||
|
if (*backupMessage) {
|
||||||
|
vaultsArray[vaultsCount + index++] = "A backup was launched. Do not immediatly close the program. After a few seconds, you can safely ignore this message.";
|
||||||
|
};
|
||||||
|
|
||||||
|
*backupMessage = 0; // we reset it to show the message only once
|
||||||
|
|
||||||
vaultSelected = ncursesSelect(vaultsArray, "Select vault to open (Use arrows or WASD, Enter to select):", vaultsCount, extraOptions, " ", "Or select an option below", "", shouldDebug);
|
vaultSelected = ncursesSelect(vaultsArray, "Select vault to open (Use arrows or WASD, Enter to select):", vaultsCount, extraOptions, " ", "Or select an option below", "", shouldDebug);
|
||||||
|
|
||||||
@@ -594,7 +612,8 @@ backup_config_end:
|
|||||||
}
|
}
|
||||||
|
|
||||||
debug("Selected vault: %s", vaultSelected);
|
debug("Selected vault: %s", vaultSelected);
|
||||||
if (strcmp(vaultSelected, "Create a new vault") != 0 && strcmp(vaultSelected, "Settings") != 0 && strcmp(vaultSelected, "Quit (Ctrl+C)") != 0) {
|
if (strcmp(vaultSelected, "Create a new vault") != 0 && strcmp(vaultSelected, "Settings") != 0 && strcmp(vaultSelected, "Quit (Ctrl+C)") != 0 && strcmp(vaultSelected, "Backup now") != 0 &&
|
||||||
|
strcmp(vaultSelected, "A backup was launched. Do not immediatly close the program. After a few seconds, you can safely ignore this message.") != 0) {
|
||||||
note_selection:
|
note_selection:
|
||||||
bypassSelectionVault = 0; // we must reset bypassSelectionVault to not get stuck in a
|
bypassSelectionVault = 0; // we must reset bypassSelectionVault to not get stuck in a
|
||||||
// infinite loop of bypassing
|
// infinite loop of bypassing
|
||||||
@@ -731,6 +750,11 @@ backup_config_end:
|
|||||||
} else if (strcmp(vaultSelected, "Settings") == 0) {
|
} else if (strcmp(vaultSelected, "Settings") == 0) {
|
||||||
openEditor(configPath, editorToOpen, 0, 0,
|
openEditor(configPath, editorToOpen, 0, 0,
|
||||||
shouldDebug); // as this is not a md file we set render and jumptoEnfOfFile to 0
|
shouldDebug); // as this is not a md file we set render and jumptoEnfOfFile to 0
|
||||||
|
} else if (strcmp(vaultSelected, "Backup now") == 0) {
|
||||||
|
debug("Running a forced backup");
|
||||||
|
forceBackup = 1;
|
||||||
|
handleBackups(directoriesArray, numDirectories, backupDirectoriesArray, homedir, interval, (const char **)rsyncArgs, rsyncArgsNumber, forceBackup, backupMessage, shouldDebug);
|
||||||
|
debug("backupMessage was set to %d by a normal backup", *backupMessage);
|
||||||
} else if (strcmp(vaultSelected, "Quit (Ctrl+C)") == 0) {
|
} else if (strcmp(vaultSelected, "Quit (Ctrl+C)") == 0) {
|
||||||
debug("The program was exited");
|
debug("The program was exited");
|
||||||
shouldExit = 1;
|
shouldExit = 1;
|
||||||
|
|||||||
+9
-3
@@ -167,8 +167,9 @@ void initAppFilesAndDirs(const char *home, const int shouldDebug) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void handleBackups(char **sourceDirectoryArray, const int sourceNumber, char **destinationDirectoryArray, const char *homeDir, const int interval, const char **rsyncArguments, const int rsyncArgumentsNumber,
|
void handleBackups(char **sourceDirectoryArray, const int sourceNumber, char **destinationDirectoryArray, const char *homeDir, const int interval, const char **rsyncArguments, const int rsyncArgumentsNumber,
|
||||||
const int shouldDebug) {
|
const int forceBackup, int *backupMessage, const int shouldDebug) {
|
||||||
int shouldBackup = 0;
|
int shouldBackup = 0;
|
||||||
|
|
||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
debug("Time since epoch is %ld", (long)now);
|
debug("Time since epoch is %ld", (long)now);
|
||||||
char cacheFilePATH[PATH_MAX];
|
char cacheFilePATH[PATH_MAX];
|
||||||
@@ -203,8 +204,12 @@ void handleBackups(char **sourceDirectoryArray, const int sourceNumber, char **d
|
|||||||
error(1, "program", "Invalid timestamp in cache file: %s", line);
|
error(1, "program", "Invalid timestamp in cache file: %s", line);
|
||||||
}
|
}
|
||||||
double deltaTime = difftime(now, lastBackupTime);
|
double deltaTime = difftime(now, lastBackupTime);
|
||||||
if (deltaTime > interval) {
|
if (deltaTime > interval || forceBackup) {
|
||||||
debug("(difftime) %f is greater than (interval) %d -> backuping...", deltaTime, interval);
|
if (!forceBackup) {
|
||||||
|
debug("(difftime) %f is greater than (interval) %d -> backuping...", deltaTime, interval);
|
||||||
|
} else {
|
||||||
|
debug("Backup was forced. backuping...");
|
||||||
|
}
|
||||||
shouldBackup = 1;
|
shouldBackup = 1;
|
||||||
cacheFile = fopen(cacheFilePATH, "w");
|
cacheFile = fopen(cacheFilePATH, "w");
|
||||||
if (!cacheFile) {
|
if (!cacheFile) {
|
||||||
@@ -218,6 +223,7 @@ void handleBackups(char **sourceDirectoryArray, const int sourceNumber, char **d
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (shouldBackup) {
|
if (shouldBackup) {
|
||||||
|
*backupMessage = 1;
|
||||||
debug("A backup is needed");
|
debug("A backup is needed");
|
||||||
for (int i = 0; i < sourceNumber; i++) {
|
for (int i = 0; i < sourceNumber; i++) {
|
||||||
debug("%s", destinationDirectoryArray[i]);
|
debug("%s", destinationDirectoryArray[i]);
|
||||||
|
|||||||
+3
-2
@@ -81,7 +81,8 @@ If need launches in the background rsync to do the backuping.
|
|||||||
Each pair of source/destination will launch one rsync process.
|
Each pair of source/destination will launch one rsync process.
|
||||||
If a pair don't need to be backed up, the destination should be set to NULL.
|
If a pair don't need to be backed up, the destination should be set to NULL.
|
||||||
rsyncArgs is the array of arguments to be passed to rsync. Do not inclue destination or source. It
|
rsyncArgs is the array of arguments to be passed to rsync. Do not inclue destination or source. It
|
||||||
will be added in the function.*/
|
will be added in the function.
|
||||||
|
backupMessage will be set to 1 if a backup was launched.*/
|
||||||
void handleBackups(char **sourceDirectoryArray, const int sourceDirectoryNumber, char **destinationDirectoryArray, const char *homeDir, const int interval, const char **rsyncArgs, const int rsyncArgsNumber,
|
void handleBackups(char **sourceDirectoryArray, const int sourceDirectoryNumber, char **destinationDirectoryArray, const char *homeDir, const int interval, const char **rsyncArgs, const int rsyncArgsNumber,
|
||||||
const int shouldDebug);
|
const int forceBackup, int *backupMessage, const int shouldDebug);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user