Implement interrupt handling for long-running commands and archive extraction
- Added an `interrupts` module to manage Ctrl-C signals and propagate them to child processes. - Refactored archive extraction functions to check for interrupts and handle them gracefully. - Introduced `copy_interruptibly` function to allow for interruptible copying of data. - Updated various source files to utilize the new interrupt handling functions, ensuring that commands and archive extractions can be interrupted by the user. - Added tests to verify the interrupt functionality during copying and tar extraction. - Introduced a new Meson option for generating HTML CLI documentation. - Enhanced the `PackageSpec` struct to support additional Rust LTO flags.
This commit is contained in:
+20
-1
@@ -1,6 +1,6 @@
|
||||
project(
|
||||
'depot',
|
||||
version: '0.22.1',
|
||||
version: '0.23.0',
|
||||
meson_version: '>=0.60.0',
|
||||
default_options: ['buildtype=release'],
|
||||
)
|
||||
@@ -10,6 +10,8 @@ fs = import('fs')
|
||||
cargo = find_program('cargo', required: true)
|
||||
find_prog = find_program('find', required: true)
|
||||
sh = find_program('sh', required: true)
|
||||
build_html_doc = get_option('build-html-doc')
|
||||
cli_doc = find_program('cli_doc', required: build_html_doc)
|
||||
|
||||
src_root = meson.project_source_root()
|
||||
build_root = meson.project_build_root()
|
||||
@@ -72,6 +74,23 @@ depot_bin = custom_target(
|
||||
install_dir: get_option('bindir'),
|
||||
)
|
||||
|
||||
if build_html_doc
|
||||
custom_target(
|
||||
'depot-html-doc',
|
||||
input: depot_bin,
|
||||
output: 'depot.html',
|
||||
command: [
|
||||
cli_doc,
|
||||
'--output-filename',
|
||||
'@OUTPUT@',
|
||||
join_paths(build_root, 'depot'),
|
||||
],
|
||||
build_by_default: true,
|
||||
install: true,
|
||||
install_dir: join_paths(get_option('datadir'), 'doc', meson.project_name()),
|
||||
)
|
||||
endif
|
||||
|
||||
test(
|
||||
'cargo-test',
|
||||
sh,
|
||||
|
||||
Reference in New Issue
Block a user