Home

Awesome

<!-- SPDX-FileCopyrightText: 2022 Shun Sakai SPDX-License-Identifier: Apache-2.0 OR MIT -->

hf

CI Version MSRV Docs License

hf is a cross-platform hidden file library and utility.

Installation

From source

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:

hf hide -n data.txt

Actually hide files:

hf hide -f data.txt

Make hidden files visible

Don't actually show anything, just show what would be done:

hf show -n .data.txt

Actually show hidden files:

hf show -f .data.txt

Generate shell completion

--generate-completion option generates shell completions to standard output.

The following shells are supported:

Example:

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:

[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

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 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:

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.