hf

Crates.iohf
lib.rshf
version0.3.6
sourcesrc
created_at2022-05-26 22:45:23.536997
updated_at2024-08-04 10:34:03.257827
descriptionCross-platform hidden file library and utility
homepagehttps://sorairolake.github.io/hf/
repositoryhttps://github.com/sorairolake/hf
max_upload_size
id594548
size101,533
Shun Sakai (sorairolake)

documentation

https://docs.rs/hf

README

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:

  • bash
  • elvish
  • fish
  • nushell
  • powershell
  • zsh

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.

Commit count: 261

cargo fmt