Skip to content

Gua-tk/Linux-Auto-Customizer

 
 

Repository files navigation

Code quality Top language Contributors Forks Stargazers Issues GNU GPL v3 License Lines of code Number of commits since v0.1 Commit activity Last commit on But me a coffee number of stars


Logo

Linux-Auto-Customizer

The Linux-Auto-Customizer project is a bash framework to automate the installation and uninstallation of a batch of preset installations in a bash environment.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments
  9. Credits
  10. Donations

About The Project

Product Name Screen Shot

Customizer is a software to automatize installations and customizations in a bash environment. It is purely written in bash and already contains more than 200 pre-coded automatic installations ready to be installed.

These installations include programming languages, IDEs, text editors, media players, games, file templates, wallpapers, environmental aliases, environmental functions, terminal customizations...

Installations in the customizer are:

  • Cleaner: Temporal files are taken care after the installation.
  • Faster: Installations are automated, so you do not need to waste time searching, downloading or decompressing files.
  • Fancier: Most installations include specific customizations.
  • Completely unattended: Installations never stop to require information while they are being installed.
  • Multi-platform: If the machine has BASH running, the core functionalities of the project will work.
  • Flexible: Many behavioural arguments are available allowing extra flexibility on the installation of each feature such as verbosity, error tolerance, re-installation of features...

(back to top)

Built With

Major frameworks/libraries used to build this project:

  • GIT
  • Bash
  • Python
  • Free Desktop org

(back to top)

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

  1. Install git:

    • In Ubuntu / Debian systems you can do so by issuing the command sudo apt install -y git.
    • In Fedora / Red Hat systems you can do so by issuing the command sudo dnf install -y git.
    • In Windows you can install git by downloading and executing this file.
    • For other systems you will need to follow this instructions.
  2. Obtain the repository code:

    • Clone the repository. With this option you can easily update your installation. Issue the command:
      git clone https://github.com/AleixMT/Linux-Auto-Customizer
    • Download a zip with the code from here. Decompress it anywhere in your computer. You can do so programmatically with these commands:
      wget https://github.com/AleixMT/Linux-Auto-Customizer/archive/master.zip unzip master.zip

Installation

You can install the main scripts in order to use them globally in your system and obtain autocompletion features for them.

  1. Get a terminal in the folder where you cloned or decompressed the repository.
  2. Use sudo bash src/core/install.sh customizer in order to install the customizer-install and customizer-uninstall commands.

(back to top)

Usage

Main scripts

There are two scripts that you can use:

  • ./src/core/install.sh to install installations.
  • ./src/core/uninstall.sh to uninstall installations.

But if you installed the customizer installation you will have available the commands customizer-install and customizer-uninstall, which are links to the scripts ./src/core/install.sh and ./src/core/uninstall.sh, respectively. These commands also have autocompletion features.

Installing / uninstalling installations

The commands customizer-install and customizer-uninstall have the same identical arguments, but behave in the opposite way:

  • customizer-install will install the installations selected by the arguments.
  • customizer-uninstall will uninstall the installations selected by the arguments.

For example, to install an installation we can issue the command:

customizer-install NAME_OF_THE_FEATURE

Equivalently, to uninstall an installation we can issue the command:

customizer-uninstall NAME_OF_THE_FEATURE

See FEATURES.md to see a full list of all the already pre-coded installations. You can also issue this command to show the installations available:

customizer-install --commands

Multiple installations at once

You can add many installations in one run. For example, to install the installation pycharm and the installation sublime you can use:

customizer-install pycharm changebg

Installing / uninstalling with / without privileges

To install a single installation without privileges you can use:

customizer-install NAME_OF_THE_FEATURE

To install a single feature with privileges you can use:

sudo customizer-install NAME_OF_THE_FEATURE
  • Some features need normal privileges, other features need special privileges and there are features where the privileges do not matter (most of them).
  • We always recommend installing the features without privileges (without sudo).
  • If you need to add sudo to get special privileges, do not worry, the customizer will complain in order for you to add it.

Behavioural arguments

There are arguments used to change the behaviour of the project when installing installations called behavioural arguments. This change in behaviour includes verbosity, error tolerance, skipping already installed features and many others. The change in behaviour is conserved in a single execution, and is propagated to the installations following the behavioural argument.

For example, the argument -v sets the verbosity level to maximum, -q sets it to default and -Q sets it to minimum (no output).

If you issue the command:

customizer-install -v java ideac -Q mvn

The installations java and ideac will be installed showing its full output, but the installation mvn will be installed with no output shown.

Another interesting behavioural argument is -o. This argument forces the installation even if the installations are already installed. This argument is useful to update or reinstall installations, since the customizer refuses to do so without this flag.

You can also combine behavioural arguments and multiple features:

customizer-install changebg -v visual_studio -o clion -q android_studio 

The previous command will install the installation changebg with defaults, visual_studio with full verbose mode, clion with full verbose mode and in overwrite installation mode and finally android_studio will be installed in overwrite installation mode and with default verbose mode.

For more examples, please refer to the Wiki.

(back to top)

Roadmap

  • Update documentations.
  • Testing of installations.
  • Build final endpoint customizer.
  • Transform feature data into JSONs.

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Take a look at CONTRIBUTING.md for a small guide on how to present contributions.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Do your changes in the project
  4. Commit your Changes (git commit -m 'Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request here

(back to top)

License

Distributed under the GNU GPL v3 License. See LICENSE here for more information.

(back to top)

Contact

Aleix Mariné-Tena - @viejo_senil - aleix.marine@estudiants.urv.cat

Project Link - https://github.com/AleixMT/Linux-Auto-Customizer

(back to top)

Acknowledgments

Resources that we used to make this project possible:

(back to top)

Credits

Main developer
Tester

(back to top)

Donations

Donations are greatly appreciated. If each person using the customizer donated 1 $ we could maintain the project actively.

You can make donations to the team through:

  • Cardano: addr1v92psazv75ycy3h9kmnpe55swx3f8y027ur42lnzvzaz5cqve45h4

  • Ethereum: 0x23CD3287E100e485B85d8BAE1676ad9068F909a5

  • Bitcoin: 342XF1x7wYU9R1VdKhVFAXsBvcYsUdemka

(back to top)