Compare commits

..
Author SHA1 Message Date
github-actions[bot] 84d3c9bd85 chore(release): 2.1 2026-05-25 14:57:19 +00:00
7 changed files with 40 additions and 78 deletions
+9 -5
View File
@@ -17,6 +17,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install GitHub CLI
run: sudo apt-get update && sudo apt-get install -y gh
- name: Configure git
run: |
git config user.name "github-actions[bot]"
@@ -26,7 +30,7 @@ jobs:
- name: Create release branch
run: |
git checkout -B release/${{ inputs.version }}
git checkout -B release/v${{ inputs.version }}
- name: Set version in flake.nix
run: |
@@ -42,14 +46,14 @@ jobs:
- name: Push branch
run: |
git push origin release/${{ inputs.version }}
git push origin release/v${{ 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 }}"
--head release/v${{ inputs.version }} \
--title "[Automatic] Release v${{ 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 }}
+1 -21
View File
@@ -57,26 +57,6 @@ You must also have a [supported editor (and their associated plugin if needed)](
## 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.
2. Ensure you have a supported editor installed.
3. Clone the repository:
@@ -109,7 +89,7 @@ make
---
### Packaging
## Packaging
There is currently no official package available for NoteWrapper.
Generated
+3 -3
View File
@@ -20,11 +20,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1779560665,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"lastModified": 1779508470,
"narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"rev": "29916453413845e54a65b8a1cf996842300cd299",
"type": "github"
},
"original": {
+12 -3
View File
@@ -13,9 +13,14 @@
in {
packages.default = pkgs.stdenv.mkDerivation (finalAttrs: {
pname = "notewrapper";
version = "v2.2.1";
version = "2.1";
src = ./.;
src = pkgs.fetchFromGitHub {
owner = "tomasriveral";
repo = "NoteWrapper";
tag = "v${finalAttrs.version}";
hash = "sha256-JoI38n5RZ/s0n+Vr9Bri2oiFeyj7Xrt1AmglmcuMpmQ=";
};
nativeBuildInputs = with pkgs; [
pkg-config
@@ -32,8 +37,12 @@
gnused
];
makeFlags = [
"VERSION=2.0"
];
buildPhase = ''
make VERSION=${finalAttrs.version}
make
'';
installPhase = ''
+9 -33
View File
@@ -529,14 +529,9 @@ backup_config_end:
shouldDebug); // check if editor is supported and if it is installed. If not, it
// 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) {
debug("Handling normal backup");
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);
debug("Handling backup");
handleBackups(directoriesArray, numDirectories, backupDirectoriesArray, homedir, interval, (const char **)rsyncArgs, rsyncArgsNumber, shouldDebug);
}
initscr(); // initialize ncurses
@@ -577,26 +572,13 @@ backup_config_end:
}
altDebug("└ ------------------------------\n");
}
int extraOptions = 3;
if (doesBackup) {
extraOptions++; // space for "Backup now" button
}
if (*backupMessage) {
extraOptions++;
}
vaultsArray = realloc(vaultsArray, (vaultsCount + extraOptions) * sizeof(char *)); // resize vaultsArray to fit the extra options
int index = 0;
vaultsArray[vaultsCount + index++] = "Create a new vault"; // some more options that are not vaults
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
// adds "create a new vault" into the vaultsArray
const int extraOptions = 3;
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
vaultsArray[vaultsCount + 1] = "Settings";
vaultsArray[vaultsCount + 2] = "Quit (Ctrl+C)";
vaultSelected = ncursesSelect(vaultsArray, "Select vault to open (Use arrows or WASD, Enter to select):", vaultsCount, extraOptions, " ", "Or select an option below", "", shouldDebug);
@@ -612,8 +594,7 @@ backup_config_end:
}
debug("Selected vault: %s", vaultSelected);
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) {
if (strcmp(vaultSelected, "Create a new vault") != 0 && strcmp(vaultSelected, "Settings") != 0 && strcmp(vaultSelected, "Quit (Ctrl+C)") != 0) {
note_selection:
bypassSelectionVault = 0; // we must reset bypassSelectionVault to not get stuck in a
// infinite loop of bypassing
@@ -750,11 +731,6 @@ backup_config_end:
} else if (strcmp(vaultSelected, "Settings") == 0) {
openEditor(configPath, editorToOpen, 0, 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) {
debug("The program was exited");
shouldExit = 1;
+2 -8
View File
@@ -167,9 +167,8 @@ 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,
const int forceBackup, int *backupMessage, const int shouldDebug) {
const int shouldDebug) {
int shouldBackup = 0;
time_t now = time(NULL);
debug("Time since epoch is %ld", (long)now);
char cacheFilePATH[PATH_MAX];
@@ -204,12 +203,8 @@ void handleBackups(char **sourceDirectoryArray, const int sourceNumber, char **d
error(1, "program", "Invalid timestamp in cache file: %s", line);
}
double deltaTime = difftime(now, lastBackupTime);
if (deltaTime > interval || forceBackup) {
if (!forceBackup) {
if (deltaTime > interval) {
debug("(difftime) %f is greater than (interval) %d -> backuping...", deltaTime, interval);
} else {
debug("Backup was forced. backuping...");
}
shouldBackup = 1;
cacheFile = fopen(cacheFilePATH, "w");
if (!cacheFile) {
@@ -223,7 +218,6 @@ void handleBackups(char **sourceDirectoryArray, const int sourceNumber, char **d
}
if (shouldBackup) {
*backupMessage = 1;
debug("A backup is needed");
for (int i = 0; i < sourceNumber; i++) {
debug("%s", destinationDirectoryArray[i]);
+2 -3
View File
@@ -81,8 +81,7 @@ If need launches in the background rsync to do the backuping.
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.
rsyncArgs is the array of arguments to be passed to rsync. Do not inclue destination or source. It
will be added in the function.
backupMessage will be set to 1 if a backup was launched.*/
will be added in the function.*/
void handleBackups(char **sourceDirectoryArray, const int sourceDirectoryNumber, char **destinationDirectoryArray, const char *homeDir, const int interval, const char **rsyncArgs, const int rsyncArgsNumber,
const int forceBackup, int *backupMessage, const int shouldDebug);
const int shouldDebug);
#endif