mirror of
https://github.com/45Drives/cockpit-navigator.git
synced 2025-09-25 18:58:42 +02:00
fixed delete method and build package
This commit is contained in:
parent
f753d47100
commit
7eca152e0c
@ -1,3 +1,3 @@
|
|||||||
## Cockpit Navigator 0.5.11-3
|
## Cockpit Navigator 0.5.11-4
|
||||||
|
|
||||||
* build package + fixed deletion method of tmp files
|
* build package
|
@ -4,7 +4,7 @@
|
|||||||
"title": "Cockpit Navigator",
|
"title": "Cockpit Navigator",
|
||||||
"description": "A File System Browser for Cockpit.",
|
"description": "A File System Browser for Cockpit.",
|
||||||
"version": "0.5.11",
|
"version": "0.5.11",
|
||||||
"build_number": "3",
|
"build_number": "4",
|
||||||
"stable": false,
|
"stable": false,
|
||||||
"author": "Josh Boudreau <jboudreau@45drives.com>",
|
"author": "Josh Boudreau <jboudreau@45drives.com>",
|
||||||
"git_url": "https://github.com/45Drives/cockpit-navigator",
|
"git_url": "https://github.com/45Drives/cockpit-navigator",
|
||||||
@ -32,8 +32,7 @@
|
|||||||
"rsync",
|
"rsync",
|
||||||
"zip",
|
"zip",
|
||||||
"file",
|
"file",
|
||||||
"/bin/mkdir",
|
"coreutils",
|
||||||
"/bin/rmdir",
|
|
||||||
"inotify-tools"
|
"inotify-tools"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -71,7 +70,7 @@
|
|||||||
"changelog": {
|
"changelog": {
|
||||||
"urgency": "medium",
|
"urgency": "medium",
|
||||||
"version": "0.5.11",
|
"version": "0.5.11",
|
||||||
"build_number": "3",
|
"build_number": "4",
|
||||||
"date": null,
|
"date": null,
|
||||||
"packager": "Josh Boudreau <jboudreau@45drives.com>",
|
"packager": "Josh Boudreau <jboudreau@45drives.com>",
|
||||||
"changes": []
|
"changes": []
|
||||||
|
@ -137,7 +137,7 @@ export class NavContextMenu {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async download(e) {
|
async download(e) {
|
||||||
let download_target = "";
|
let download_target = "";
|
||||||
let result; // function-scoped so we can reference later
|
let result; // function-scoped so we can reference later
|
||||||
|
|
||||||
@ -158,34 +158,85 @@ export class NavContextMenu {
|
|||||||
this.nav_window_ref.stop_load();
|
this.nav_window_ref.stop_load();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result?.["archive-path"]) {
|
if (result?.["archive-path"]) {
|
||||||
const unitName = `nav-clean-on-open-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;
|
const unitName = `nav-clean-sweep-on-close-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;
|
||||||
const script = [
|
|
||||||
'set -euo pipefail',
|
const script = `
|
||||||
'if ! command -v inotifywait >/dev/null 2>&1; then ' +
|
set -euo pipefail
|
||||||
'sleep 300; rm -f -- "$ARCHIVE"; ' +
|
|
||||||
'[ -n "${TEMPDIR:-}" ] && [[ "$TEMPDIR" == /tmp/navigator-* ]] && rm -rf -- "$TEMPDIR"; ' +
|
ARCHIVE="$ARCHIVE"
|
||||||
'exit 0; fi',
|
DIR="$(dirname -- "$ARCHIVE")"
|
||||||
'inotifywait -q -t 1800 -e open -- "$ARCHIVE" || true',
|
BASE="$(basename -- "$ARCHIVE")"
|
||||||
'rm -f -- "$ARCHIVE"',
|
ROOT="/tmp/navigator"
|
||||||
'sleep 3600',
|
PATTERN="navigator-download*"
|
||||||
'[ -n "${TEMPDIR:-}" ] && [[ "$TEMPDIR" == /tmp/navigator-* ]] && rm -rf -- "$TEMPDIR" || :'
|
|
||||||
].join(' && ');
|
if ! command -v inotifywait >/dev/null 2>&1; then
|
||||||
const cmd = [
|
sleep 300
|
||||||
'systemd-run',
|
rm -f -- "$ARCHIVE" || true
|
||||||
'--property=CollectMode=inactive-or-failed',
|
# Sweep everything matching PATTERN that's not in use
|
||||||
'--property=RuntimeMaxSec=90000',
|
find "$ROOT" -mindepth 1 -maxdepth 1 -name "$PATTERN" -print0 | \
|
||||||
'--unit', unitName,
|
while IFS= read -r -d '' p; do
|
||||||
'--setenv=ARCHIVE=' + result['archive-path'],
|
if command -v lsof >/dev/null 2>&1 && lsof -t -- "$p" >/dev/null 2>&1; then
|
||||||
...(result['temp-dir'] ? ['--setenv=TEMPDIR=' + result['temp-dir']] : []),
|
continue
|
||||||
'/bin/bash','-lc', script
|
fi
|
||||||
];
|
rm -rf -- "$p"
|
||||||
|
done
|
||||||
await cockpit.spawn(cmd, { superuser: 'require', err: 'out' }).then(out => console.log(out));
|
[ -n "\${TEMPDIR:-}" ] && [[ "$TEMPDIR" == /tmp/navigator-* ]] && rm -rf -- "$TEMPDIR" || :
|
||||||
console.log("scheduled cleanup:", unitName);
|
exit 0
|
||||||
console.log("Deleting :", result['archive-path'], "in 30 minutes or after download starts.");
|
fi
|
||||||
}
|
|
||||||
|
if ! timeout 1800 bash -lc '
|
||||||
|
inotifywait -q -m -e open --format "%e %f" -- "$DIR" |
|
||||||
|
while read ev f; do
|
||||||
|
if [ "$f" = "$BASE" ]; then exit 0; fi
|
||||||
|
done
|
||||||
|
'; then
|
||||||
|
find "$ROOT" -mindepth 1 -maxdepth 1 -name "$PATTERN" -print0 | \
|
||||||
|
while IFS= read -r -d '' p; do
|
||||||
|
if command -v lsof >/dev/null 2>&1 && lsof -t -- "$p" >/dev/null 2>&1; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
rm -rf -- "$p"
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v lsof >/dev/null 2>&1; then
|
||||||
|
# Ensure no process holds ARCHIVE open
|
||||||
|
sleep 1
|
||||||
|
while lsof -t -- "$ARCHIVE" >/dev/null 2>&1; do sleep 1; done
|
||||||
|
else
|
||||||
|
timeout 86400 bash -lc '
|
||||||
|
inotifywait -q -m -e close --format "%e %f" -- "$DIR" |
|
||||||
|
while read ev f; do
|
||||||
|
if [ "$f" = "$BASE" ]; then exit 0; fi
|
||||||
|
done
|
||||||
|
' || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f -- "$ARCHIVE" || true
|
||||||
|
|
||||||
|
# (uncomment -mmin +5 to keep very fresh ones)
|
||||||
|
find "$ROOT" -mindepth 1 -maxdepth 1 -name "$PATTERN" -print0 | \
|
||||||
|
while IFS= read -r -d '' p; do
|
||||||
|
if command -v lsof >/dev/null 2>&1 && lsof -t -- "$p" >/dev/null 2>&1; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
rm -rf -- "$p"
|
||||||
|
done
|
||||||
|
[ -n "\${TEMPDIR:-}" ] && [[ "$TEMPDIR" == /tmp/navigator-* ]] && rm -rf -- "$TEMPDIR" || :
|
||||||
|
`;
|
||||||
|
const cmd = [
|
||||||
|
'systemd-run',
|
||||||
|
'--property=CollectMode=inactive-or-failed',
|
||||||
|
'--property=RuntimeMaxSec=90000',
|
||||||
|
'--unit', unitName,
|
||||||
|
'--setenv=ARCHIVE=' + result['archive-path'],
|
||||||
|
...(result['temp-dir'] ? ['--setenv=TEMPDIR=' + result['temp-dir']] : []),
|
||||||
|
'/bin/bash','-lc', script
|
||||||
|
];
|
||||||
|
await cockpit.spawn(cmd, { superuser: 'require', err: 'out' });
|
||||||
|
}
|
||||||
const downloader = new NavDownloader(download_target);
|
const downloader = new NavDownloader(download_target);
|
||||||
downloader.download();
|
downloader.download();
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
cockpit-navigator (0.5.11-4bookworm) bookworm; urgency=medium
|
||||||
|
|
||||||
|
* build package
|
||||||
|
|
||||||
|
-- Rachit Hans <rhans@45drives.com> Tue, 16 Sep 2025 11:58:45 -0300
|
||||||
|
|
||||||
cockpit-navigator (0.5.11-3bookworm) bookworm; urgency=medium
|
cockpit-navigator (0.5.11-3bookworm) bookworm; urgency=medium
|
||||||
|
|
||||||
* build package + fixed deletion method of tmp files
|
* build package + fixed deletion method of tmp files
|
||||||
|
@ -33,6 +33,8 @@ rm -rf %{buildroot}
|
|||||||
/usr/share/cockpit/navigator/*
|
/usr/share/cockpit/navigator/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Sep 16 2025 Rachit Hans <rhans@45drives.com> 0.5.11-4
|
||||||
|
- build package
|
||||||
* Tue Sep 16 2025 Rachit Hans <rhans@45drives.com> 0.5.11-3
|
* Tue Sep 16 2025 Rachit Hans <rhans@45drives.com> 0.5.11-3
|
||||||
- build package + fixed deletion method of tmp files
|
- build package + fixed deletion method of tmp files
|
||||||
* Tue Sep 16 2025 Jordan Keough <jkeough@45drives.com> 0.5.11-2
|
* Tue Sep 16 2025 Jordan Keough <jkeough@45drives.com> 0.5.11-2
|
||||||
|
@ -33,6 +33,8 @@ rm -rf %{buildroot}
|
|||||||
/usr/share/cockpit/navigator/*
|
/usr/share/cockpit/navigator/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Sep 16 2025 Rachit Hans <rhans@45drives.com> 0.5.11-4
|
||||||
|
- build package
|
||||||
* Tue Sep 16 2025 Rachit Hans <rhans@45drives.com> 0.5.11-3
|
* Tue Sep 16 2025 Rachit Hans <rhans@45drives.com> 0.5.11-3
|
||||||
- build package + fixed deletion method of tmp files
|
- build package + fixed deletion method of tmp files
|
||||||
* Tue Sep 16 2025 Jordan Keough <jkeough@45drives.com> 0.5.11-2
|
* Tue Sep 16 2025 Jordan Keough <jkeough@45drives.com> 0.5.11-2
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
cockpit-navigator (0.5.11-4focal) focal; urgency=medium
|
||||||
|
|
||||||
|
* build package
|
||||||
|
|
||||||
|
-- Rachit Hans <rhans@45drives.com> Tue, 16 Sep 2025 11:58:45 -0300
|
||||||
|
|
||||||
cockpit-navigator (0.5.11-3focal) focal; urgency=medium
|
cockpit-navigator (0.5.11-3focal) focal; urgency=medium
|
||||||
|
|
||||||
* build package + fixed deletion method of tmp files
|
* build package + fixed deletion method of tmp files
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
cockpit-navigator (0.5.11-4jammy) jammy; urgency=medium
|
||||||
|
|
||||||
|
* build package
|
||||||
|
|
||||||
|
-- Rachit Hans <rhans@45drives.com> Tue, 16 Sep 2025 11:58:45 -0300
|
||||||
|
|
||||||
cockpit-navigator (0.5.11-3jammy) jammy; urgency=medium
|
cockpit-navigator (0.5.11-3jammy) jammy; urgency=medium
|
||||||
|
|
||||||
* build package + fixed deletion method of tmp files
|
* build package + fixed deletion method of tmp files
|
||||||
|
Loading…
x
Reference in New Issue
Block a user