{"id":21306142,"url":"https://github.com/brlin-tw/dot-profile.d","last_synced_at":"2025-03-15T19:41:46.569Z","repository":{"id":143329393,"uuid":"88586991","full_name":"brlin-tw/dot-profile.d","owner":"brlin-tw","description":"A decentralized user profile configuration management solution","archived":false,"fork":false,"pushed_at":"2024-10-07T15:06:32.000Z","size":120,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-22T08:45:44.893Z","etag":null,"topics":["configuration-management","profile","shell"],"latest_commit_sha":null,"homepage":"https://github.com/brlin-tw/dot-profile.d","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brlin-tw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/CC-BY-SA-4.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-18T05:51:34.000Z","updated_at":"2024-10-07T15:03:41.000Z","dependencies_parsed_at":"2024-11-21T16:23:32.246Z","dependency_job_id":"13fead65-6d48-4ea9-a39d-57e7491a7718","html_url":"https://github.com/brlin-tw/dot-profile.d","commit_stats":null,"previous_names":["brlin-tw/dot-profile.d"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fdot-profile.d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fdot-profile.d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fdot-profile.d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2Fdot-profile.d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brlin-tw","download_url":"https://codeload.github.com/brlin-tw/dot-profile.d/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243784100,"owners_count":20347409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration-management","profile","shell"],"created_at":"2024-11-21T16:21:51.046Z","updated_at":"2025-03-15T19:41:46.548Z","avatar_url":"https://github.com/brlin-tw.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# .profile.d\n\nA decentralized user profile configuration management solution  \n\u003chttps://github.com/brlin-tw/dot-profile.d\u003e  \n[![GitHub Actions workflow status badge](https://github.com/brlin-tw/dot-profile.d/actions/workflows/check-potential-problems.yml/badge.svg \"GitHub Actions workflow status\")](https://github.com/brlin-tw/dot-profile.d/actions/workflows/check-potential-problems.yml) [![pre-commit enabled badge](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white \"This project uses pre-commit to check potential problems\")](https://pre-commit.com/) [![REUSE Specification compliance badge](https://api.reuse.software/badge/github.com/brlin-tw/dot-profile.d \"This project complies to the REUSE specification to decrease software licensing costs\")](https://api.reuse.software/info/github.com/brlin-tw/dot-profile.d)\n\n\\[English\\] \\[[台灣中文](README.zh-TW.md)\\]\n\nThe .profile file in the root of the user's home directory is a configuration file that will be loaded and executed once while the user is logging in on Unix-like OSes.  It is normally used to configure the user's environment variables(including the `PATH` environment variable which is used to search the executable file of the command).\n\nThis project provides a solution to host the user's script fragments that is originally placed into the ~/.profile file in order to minimize the pollution of the OS distribution-provided version and allows reusing of the configuration fragments.\n\nYou need to create the .profile.d directory in you home directory(if it didn't exist), then place your configuration fragments in the directory under the .source.sh filename extension.  The logic in the .profile file will automatically source and execute these files.\n\n## Features\n\n* Supplies utility functions to install specified directory into the command search PATHs.\n* If the specified directory doesn't exist or the command search PATHs already contains that directory then it won't be added, avoid unnecessary time wasted by the additional search path.\n\n## Setup\n\n1. Download the release package from [the project's Releases page](https://github.com/brlin-tw/dot-profile.d/releases).\n1. Extract the release package.\n1. Launch a text terminal emulator application.\n1. In the text terminal emulator application, change the working directory to the extracted release package directory by running the following command:\n\n    ```bash\n    cd /path/to/extracted/release/package/dir\n    ```\n\n1. Run the installation program by running the following command:\n\n    ```bash\n    ./install.sh\n    ```\n\n    You need to logout and re-login your user session to make the configuration change in effect.\n\n## Remark\n\n* The .profile file is a generic shell script, you should use [the POSIX.1-2008 specification-compliant shell script syntax](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html) to write the configuration scriptlets instead of specific shell script syntaxes like Bash.\n* The ~/.profile.d/\\*.source.sh configuration scriptlets are expected to be idempotent, which is the state won't be changed when the profile script is repeatedly sourced.\n\n## Licensing\n\nUnless otherwise noted(individual file's header/[REUSE DEP5](.reuse/dep5)), this product is licensed under [version 3 of The GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.html.en), or any of its recent versions you would prefer.\n\nThis work complies to [the REUSE Specification](https://reuse.software/spec/), refer the [REUSE - Make licensing easy for everyone](https://reuse.software/) website for info regarding the licensing of this product.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrlin-tw%2Fdot-profile.d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrlin-tw%2Fdot-profile.d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrlin-tw%2Fdot-profile.d/lists"}