This commit enhances the robustness of setting VSCode configurations,
ensuring consistent and reliable operation even in edge cases, such as
when the settings file is empty. This commit also uniforms behavior of
Linux and Windows modification of VSCode settings.
On Windows:
- Move parameters to on top of scripts to be able to easily test the
scripts using PowerShell without compiling.
- Add a check to exit the script with an error message if the attempt to
parse the JSON content fails.
- Omit the `OutString` cmdlet from the pipeline in the script for
converting JSON file content to a PowerShell object. `Out-String` is
unnecessary in this context because `Get-Content` already outputs the
file content as a string array, which `ConvertFrom-Json` effectively.
Additionally, using `Out-String` could potentially introduce issues by
concatenating file content into a single string, causing
`ConvertFrom-Json` to fail when processing pretty-printed JSON. By
removing `Out-String`, the script is streamlined and potential errors
are avoided.
- Add logic to handle empty settings file. Add an additional check for
empty settings file, if the file is empty, the script writes a default
empty JSON object (`{}`) to the file. The operation is logged to
ensure transparency, notifying the user of the action taken. This
change removes fails due to empty setting files.
- When reverting, do not fail if the setting file is missing because it
means that default settings are already in-place.
- When reverting, show informative message if the key does not exist or
does not have the value set by privacy.sexy and do not take any
further action.
- If the desired value is already set, show a message for it and skip
updating the setting file.
On Linux:
- Handles empty `settings.json` similarly to Windows.
- Add more user friendly error if JSON file cannot be parsed.
privacy.sexy — Now you have the choice
Enforce privacy & security best-practices on Windows, macOS and Linux, because privacy is sexy 🍑🍆
Get started
- 🌍️ Online: https://privacy.sexy.
- 🖥️ Offline: Download directly for: Windows, macOS, Linux. For more options, see here.
Online version does not require to run any software on your computer. Offline version has more functions such as running the scripts directly.
💡 You should apply your configuration from time to time (more than once). It would strengthen your privacy and security control because privacy.sexy and its scripts get better and stronger in every new version.
Features
- Rich: Hundreds of scripts that aims to give you control of your data.
- Free: Both free as in "beer" and free as in "speech".
- Transparent. Have full visibility into what the tweaks do as you enable them.
- Reversible. Revert if something feels wrong.
- Accessible. No need to run any compiled software on your computer with web version.
- Open. What you see as code in this repository is what you get. The application itself, its infrastructure and deployments are open-source and automated thanks to bump-everywhere.
- Tested. A lot of tests. Automated and manual. Community-testing and verification. Stability improvements comes before new features.
- Extensible. Effortlessly extend scripts with a custom designed templating language.
- Portable and simple. Every script is independently executable without cross-dependencies.
Support
Sponsor 💕. Consider sponsoring on GitHub Sponsors, or you can donate using other ways such as crypto or a coffee.
Star 🤩. Feel free to give it a star ⭐ .
Contribute 👷. Contributions of any type are welcome. See CONTRIBUTING.md as the starting point. It includes useful information like how to add new scripts.
Additional Install Options
-
Check the releases page for all available versions.
-
Using Scoop package manager on Windows:
scoop bucket add extras scoop install privacy.sexy
Development
Refer to development.md for Docker usage and reading more about setting up your development environment.
Check architecture.md for an overview of design and how different parts and layers work together. You can refer to application.md for a closer look at application layer codebase and presentation.md for code related to GUI layer. collection-files.md explains the YAML files that are the core of the application and templating.md documents how to use templating language in those files. In ci-cd.md, you can read more about the pipelines that automates maintenance tasks and ensures you get what see.
docs/ folder includes all other documentation.
Security
Security is a top priority at privacy.sexy. An extensive commitment to security verification ensures this priority. For any security concerns or vulnerabilities, please consult the Security Policy.
