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.0.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.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lithio-1.0.0.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.0.tar.gz
Algorithm Hash digest
SHA256 a6922eef4e7a1971158318823c478536714136ca2ddddc11853bb3b70915be42
MD5 2738d686693ab69682402191a423b988
BLAKE2b-256 37203e751ebed94d573dc363ee65c3209d51ff60e4a9abd80f4b8d147068c06b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lithio-1.0.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8f792d7302662e553bf22979b2f5bcd3b07bbc5658d8fab6a4756ec8163932fc
MD5 afd18a7101e66e33aee128c7ef59819d
BLAKE2b-256 e40783ba2f3cf5b37f69c88d9acdc77aaccb765fa68b1452b5be006acc2ca853

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