Skip to main content

A Python-based clone of the GNU install command.

Project description

Lithio - Python clone of GNU install

Lithio is a Python clone of the GNU install command, designed to provide a safe, flexible, and cross-platform solution for installing files and managing file permissions in various environments.

Installation

To install, run (be aware of what the install.sh script does):

bash install.sh

Note: The install.sh script sets up the package and installs necessary dependencies. Review the script before running it to understand what actions it performs.

To install files:

Once installed, you can use lithio to install files:

lithio file1 file2 /path/to/destination

This will copy file1 and file2 to the specified destination directory.

Note: If you used install.sh to install the package, you can install files that require elevated privileges sudo -E lithio

To install files with sudo:

sudo -E lithio file1 file2 /path/to/destination

The -E flag preserves the user's environment, which is useful when running the command with sudo.

Features

  • Simple command-line usage: Install files with ease and flexibility.
  • Checksum validation: You can validate file integrity using the --checksum <checksum_file> option with --checksum-type. The <checksum_file> should contain a list of file names and their associated hashes in the format <file_name>:<file_hash>\n.
  • Usability in scripts: lithio does not require any kind of user interaction, making it ideal for automation.
  • Extendable: Easily adaptable for future functionalities.
  • More: More information can be found in the man page man lithio

Contributing

Contributions are welcome! If you have suggestions, bug reports, or improvements, please open an issue or submit a pull request.

  1. Fork the repository
  2. Create a new branch (`git checkout -b feature-branch`)
  3. Commit your changes (`git commit -am 'Add new feature'`)
  4. Push to the branch (`git push origin feature-branch`)
  5. Create a new pull request

Make sure to add tests and documentation for your changes.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For questions, you can reach me at voyager-2019@outlook.com.

Acknowledgments

  • Inspired by the GNU `install` command
  • Thanks to the contributors who helped improve this project!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lithio-1.0.2.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lithio-1.0.2-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file lithio-1.0.2.tar.gz.

File metadata

  • Download URL: lithio-1.0.2.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.24.1 CPython/3.13.3 Linux/6.14.0-15-generic

File hashes

Hashes for lithio-1.0.2.tar.gz
Algorithm Hash digest
SHA256 42003c90d55c2d0b2fcaedd31bb380ddbbeef3b5754b5042d394d59ae34e64d9
MD5 13e0099a2e17aaa32bad35151120cb9b
BLAKE2b-256 9759cad18f698640ac92f8fd03c69ab9a829c5e58b75a4174080bdfeb22293d5

See more details on using hashes here.

File details

Details for the file lithio-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: lithio-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.24.1 CPython/3.13.3 Linux/6.14.0-15-generic

File hashes

Hashes for lithio-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0554293c023d4eb39b33d744d12e3ce300d1a846a0740362f7a72f0a0f7a694c
MD5 c641e4168dd306d81dd62939f4eb3f34
BLAKE2b-256 cd132158ad18bff8bbab5eb89451bdf984c42b15d0331bb8d657f39f9d05b2b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page