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",
|
||||
"description": "A File System Browser for Cockpit.",
|
||||
"version": "0.5.11",
|
||||
"build_number": "3",
|
||||
"build_number": "4",
|
||||
"stable": false,
|
||||
"author": "Josh Boudreau <jboudreau@45drives.com>",
|
||||
"git_url": "https://github.com/45Drives/cockpit-navigator",
|
||||
@ -32,8 +32,7 @@
|
||||
"rsync",
|
||||
"zip",
|
||||
"file",
|
||||
"/bin/mkdir",
|
||||
"/bin/rmdir",
|
||||
"coreutils",
|
||||
"inotify-tools"
|
||||
]
|
||||
},
|
||||
@ -71,7 +70,7 @@
|
||||
"changelog": {
|
||||
"urgency": "medium",
|
||||
"version": "0.5.11",
|
||||
"build_number": "3",
|
||||
"build_number": "4",
|
||||
"date": null,
|
||||
"packager": "Josh Boudreau <jboudreau@45drives.com>",
|
||||
"changes": []
|
||||
|
@ -137,7 +137,7 @@ export class NavContextMenu {
|
||||
});
|
||||
}
|
||||
|
||||
async download(e) {
|
||||
async download(e) {
|
||||
let download_target = "";
|
||||
let result; // function-scoped so we can reference later
|
||||
|
||||
@ -158,34 +158,85 @@ export class NavContextMenu {
|
||||
this.nav_window_ref.stop_load();
|
||||
}
|
||||
}
|
||||
if (result?.["archive-path"]) {
|
||||
const unitName = `nav-clean-on-open-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;
|
||||
const script = [
|
||||
'set -euo pipefail',
|
||||
'if ! command -v inotifywait >/dev/null 2>&1; then ' +
|
||||
'sleep 300; rm -f -- "$ARCHIVE"; ' +
|
||||
'[ -n "${TEMPDIR:-}" ] && [[ "$TEMPDIR" == /tmp/navigator-* ]] && rm -rf -- "$TEMPDIR"; ' +
|
||||
'exit 0; fi',
|
||||
'inotifywait -q -t 1800 -e open -- "$ARCHIVE" || true',
|
||||
'rm -f -- "$ARCHIVE"',
|
||||
'sleep 3600',
|
||||
'[ -n "${TEMPDIR:-}" ] && [[ "$TEMPDIR" == /tmp/navigator-* ]] && rm -rf -- "$TEMPDIR" || :'
|
||||
].join(' && ');
|
||||
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' }).then(out => console.log(out));
|
||||
console.log("scheduled cleanup:", unitName);
|
||||
console.log("Deleting :", result['archive-path'], "in 30 minutes or after download starts.");
|
||||
}
|
||||
|
||||
if (result?.["archive-path"]) {
|
||||
const unitName = `nav-clean-sweep-on-close-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;
|
||||
|
||||
const script = `
|
||||
set -euo pipefail
|
||||
|
||||
ARCHIVE="$ARCHIVE"
|
||||
DIR="$(dirname -- "$ARCHIVE")"
|
||||
BASE="$(basename -- "$ARCHIVE")"
|
||||
ROOT="/tmp/navigator"
|
||||
PATTERN="navigator-download*"
|
||||
|
||||
if ! command -v inotifywait >/dev/null 2>&1; then
|
||||
sleep 300
|
||||
rm -f -- "$ARCHIVE" || true
|
||||
# Sweep everything matching PATTERN that's not in use
|
||||
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" || :
|
||||
exit 0
|
||||
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);
|
||||
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
|
||||
|
||||
* build package + fixed deletion method of tmp files
|
||||
|
@ -33,6 +33,8 @@ rm -rf %{buildroot}
|
||||
/usr/share/cockpit/navigator/*
|
||||
|
||||
%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
|
||||
- build package + fixed deletion method of tmp files
|
||||
* Tue Sep 16 2025 Jordan Keough <jkeough@45drives.com> 0.5.11-2
|
||||
|
@ -33,6 +33,8 @@ rm -rf %{buildroot}
|
||||
/usr/share/cockpit/navigator/*
|
||||
|
||||
%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
|
||||
- build package + fixed deletion method of tmp files
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
* build package + fixed deletion method of tmp files
|
||||
|
Loading…
x
Reference in New Issue
Block a user