# hf [![CI][ci-badge]][ci-url] [![Version][version-badge]][version-url] ![MSRV][msrv-badge] [![Docs][docs-badge]][docs-url] ![License][license-badge] **hf** is a cross-platform hidden file library and utility. ## Installation ### From source ```sh cargo install hf ``` ### From binaries The [release page] contains pre-built binaries for Linux, macOS and Windows. ### How to build Please see [BUILD.adoc]. ## Usage ### Make files invisible Don't actually hide anything, just show what would be done: ```sh hf hide -n data.txt ``` Actually hide files: ```sh hf hide -f data.txt ``` ### Make hidden files visible Don't actually show anything, just show what would be done: ```sh hf show -n .data.txt ``` Actually show hidden files: ```sh hf show -f .data.txt ``` ### Generate shell completion `--generate-completion` option generates shell completions to standard output. The following shells are supported: - `bash` - `elvish` - `fish` - `nushell` - `powershell` - `zsh` Example: ```sh hf --generate-completion bash > hf.bash ``` ## Use as a library This crate is also available as a library. Add this to your `Cargo.toml` to use it as a library: ```toml [dependencies] hf = { version = "0.3.6", default-features = false } ``` By default, the dependencies required to build the application are also built. If you disable the `default` feature, only the dependencies required to build the library will be built. ### Example ```rust use std::fs::File; let temp_dir = tempfile::tempdir().unwrap(); let file_path = temp_dir.path().join("foo.txt"); File::create(&file_path).unwrap(); assert!(!hf::is_hidden(&file_path).unwrap()); hf::hide(&file_path).unwrap(); // Change the file name to start with `.`. #[cfg(unix)] let file_path = hf::unix::hidden_file_name(&file_path).unwrap(); assert!(hf::is_hidden(&file_path).unwrap()); hf::show(&file_path).unwrap(); // Change the file name to start with a character other than `.`. #[cfg(unix)] let file_path = hf::unix::normal_file_name(&file_path).unwrap(); assert!(!hf::is_hidden(file_path).unwrap()); ``` ### Documentation See the [documentation][docs-url] for more details. ## Minimum supported Rust version The minimum supported Rust version (MSRV) of this library is v1.74.0. ## Command-line options Please see the following: - [`hf(1)`] - [`hf-hide(1)`] - [`hf-show(1)`] - [`hf-help(1)`] ## Changelog Please see [CHANGELOG.adoc]. ## Contributing Please see [CONTRIBUTING.adoc]. ## License Copyright © 2022–2024 Shun Sakai (see [AUTHORS.adoc]) 1. This program is distributed under the terms of either the _Apache License 2.0_ or the _MIT License_. 2. Some files are distributed under the terms of the _Creative Commons Attribution 4.0 International Public License_. This project is compliant with version 3.2 of the [_REUSE Specification_]. See copyright notices of individual files for more details on copyright and licensing information. [ci-badge]: https://img.shields.io/github/actions/workflow/status/sorairolake/hf/CI.yaml?branch=develop&style=for-the-badge&logo=github&label=CI [ci-url]: https://github.com/sorairolake/hf/actions?query=branch%3Adevelop+workflow%3ACI++ [version-badge]: https://img.shields.io/crates/v/hf?style=for-the-badge&logo=rust [version-url]: https://crates.io/crates/hf [msrv-badge]: https://img.shields.io/crates/msrv/hf?style=for-the-badge&logo=rust [docs-badge]: https://img.shields.io/docsrs/hf?style=for-the-badge&logo=docsdotrs&label=Docs.rs [docs-url]: https://docs.rs/hf [license-badge]: https://img.shields.io/crates/l/hf?style=for-the-badge [release page]: https://github.com/sorairolake/hf/releases [BUILD.adoc]: BUILD.adoc [`hf(1)`]: https://sorairolake.github.io/hf/book/man/man1/hf.1.html [`hf-hide(1)`]: https://sorairolake.github.io/hf/book/man/man1/hf-hide.1.html [`hf-show(1)`]: https://sorairolake.github.io/hf/book/man/man1/hf-show.1.html [`hf-help(1)`]: https://sorairolake.github.io/hf/book/man/man1/hf-help.1.html [CHANGELOG.adoc]: CHANGELOG.adoc [CONTRIBUTING.adoc]: CONTRIBUTING.adoc [AUTHORS.adoc]: AUTHORS.adoc [_REUSE Specification_]: https://reuse.software/spec/