Skip to content

Commit

Permalink
Fixed: lint errors and reinstallation of vs code and dotnet fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
beastbybirth2 committed May 25, 2024
1 parent b59f82d commit 41ba538
Show file tree
Hide file tree
Showing 6 changed files with 278 additions and 128 deletions.
41 changes: 27 additions & 14 deletions docs/Splashkit/Applications/mingw-automated installation/readme.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
# Installation Script Documentation

## Overview
This script automates the installation process for SplashKit, .NET, C++ tools, and Visual Studio Code (VS Code) on Windows systems using MSYS2. It ensures a seamless setup of development tools required for software development.
## Purpose

This script automates the installation process for SplashKit, .net, C++ tools, and Visual Studio
Code (VS Code) on Windows systems using MSYS2. It ensures a seamless setup of development tools
required for software development.

## Script Details

The script is divided into several sections, each responsible for a specific task:

1. **Update package databases:** Ensures that package databases are up to date before proceeding with installations.
1. **Update package databases:** Ensures that package databases are up to date before proceeding
with installations.
2. **Install required packages:** Installs necessary packages such as git, curl, and unzip.
3. **Install C++ tools:** Installs essential C++ development tools using pacman.
4. **Install .NET SDK:** Downloads and installs the .NET SDK using PowerShell to handle the installation process.
5. **Install VS Code:** Downloads and installs VS Code using PowerShell to handle the installation process.
3. **Install C++ tools:** Installs essential C++ development tools using `pacman`.
4. **Install .net SDK:** Downloads and installs the .net SDK using PowerShell to handle the
installation process.
5. **Install VS Code:** Downloads and installs VS Code using PowerShell to handle the installation
process.
6. **Install SplashKit:** Downloads and installs SplashKit using the provided installation script.
7. **Install VS Code extensions:** Installs essential VS Code extensions for C++ and .NET development.
7. **Install VS Code extensions:** Installs essential VS Code extensions for C++ and .net
development.

## Usage

To use the script, follow these steps:

1. Ensure that you have MSYS2 installed on your system.
2. Copy the script to your system or download it. Save it as `install.sh` inside your MSYS2 home directory (`C:/msys/home/{username}/install.sh`).
3. Open a MSYS2 bash terminal window.
4. Navigate to the directory containing the script:
```bash
2. Copy the script to your system or download it. Save it as `install.sh` inside your MSYS2 home
directory (`C:/msys64/home/{username}/install.sh`).
3. Open a MINGW64 bash terminal window.
4. Go to the directory containing the script:
```shell
cd ~
```
5. Run the script using the command:
```bash
```shell
bash install.sh
```
6. Follow the on-screen prompts and instructions to complete the installation process.
7. After installation, restart your terminal for the changes to take effect.

## Troubleshooting
If you encounter any issues during the installation process, consider the following troubleshooting steps:

If you encounter any issues during the installation process, consider the following troubleshooting
steps:

- Check your internet connection to ensure that downloads are not being interrupted.
- Verify that you have the necessary permissions to execute the script.
- Ensure that your system meets the minimum requirements for running the installed tools.
- Refer to the documentation of individual tools for troubleshooting specific issues.
- Refer to the documentation of individual tools for troubleshooting specific issues.
Original file line number Diff line number Diff line change
Expand Up @@ -15,44 +15,50 @@ pacman -S --needed --noconfirm git curl unzip

# Install C++ tools (before SplashKit)
echo "Installing C++ tools..."
pacman -S --needed --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-toolchain

# Download .NET SDK Installer
echo "Downloading .NET SDK installer..."
curl -L $dotnet_sdk_url -o dotnet-sdk-installer.exe

# Run .NET SDK Installer using PowerShell
echo "Installing .NET SDK..."
powershell.exe -Command "Start-Process dotnet-sdk-installer.exe -ArgumentList '/quiet /norestart' -Wait"
if [ $? -ne 0 ]; then
echo ".NET SDK installation failed. Please try installing it manually."
exit 1
fi
pacman -S --needed --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make mingw-w64-x86_64-toolchain

# Check if .NET SDK is installed
if ! command -v dotnet &> /dev/null
then
echo ".NET SDK installation failed or .NET SDK is not in the PATH. Please check the installation and try again."
exit 1
fi
echo "Downloading .NET SDK installer..."
curl -L $dotnet_sdk_url -o dotnet-sdk-installer.exe

# Download VS Code Installer
echo "Downloading Visual Studio Code installer..."
curl -L $vscode_installer_url -o vscode-installer.exe
echo "Installing .NET SDK..."
powershell.exe -Command "Start-Process dotnet-sdk-installer.exe -ArgumentList '/quiet /norestart' -Wait"
if [ $? -ne 0 ]; then
echo ".NET SDK installation failed. Please try installing it manually."
exit 1
fi

# Run VS Code Installer using PowerShell
echo "Installing Visual Studio Code..."
powershell.exe -Command "Start-Process vscode-installer.exe -ArgumentList '/silent /mergetasks=!runcode' -Wait"
if [ $? -ne 0 ]; then
echo "Visual Studio Code installation failed. Please try installing it manually."
exit 1
if ! command -v dotnet &> /dev/null
then
echo ".NET SDK installation failed or .NET SDK is not in the PATH. Please check the installation and try again."
exit 1
fi
else
echo ".NET SDK is already installed."
fi

# Check if VS Code is installed
if ! command -v code &> /dev/null
then
echo "Visual Studio Code installation failed or VS Code is not in the PATH. Please check the installation and try again."
exit 1
echo "Downloading Visual Studio Code installer..."
curl -L $vscode_installer_url -o vscode-installer.exe

echo "Installing Visual Studio Code..."
powershell.exe -Command "Start-Process vscode-installer.exe -ArgumentList '/silent /mergetasks=!runcode' -Wait"
if [ $? -ne 0 ]; then
echo "Visual Studio Code installation failed. Please try installing it manually."
exit 1
fi

if ! command -v code &> /dev/null
then
echo "Visual Studio Code installation failed or VS Code is not in the PATH. Please check the installation and try again."
exit 1
fi
else
echo "Visual Studio Code is already installed."
fi

# Install SplashKit
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,54 @@
# Detecting Operating System through MSYS

MSYS, or Minimal SYStem, is a Windows software distribution and development platform that offers package management, a bash shell, and a number of other tools and libraries in a manner reminiscent of Unix. It is often used in conjunction with MinGW (Minimalist GNU for Windows) to create native Windows applications using the GNU toolchain.
MSYS, or Minimal SYStem, is a Windows software distribution and development platform that offers
package management, a bash shell, and a number of other tools and libraries in a manner reminiscent
of Unix. It is often used in conjunction with MinGW (Minimalist GNU for Windows) to create native
Windows applications using the GNU toolchain.

## Using Environment Variables

One common method for detecting the operating system is to leverage pre-defined environment variables that contain information about the system. MSYS provides a variable called `$OSTYPE`, which holds a string that identifies the operating system type. By checking the value of this variable, scripts can determine whether they are running on Windows, Linux, macOS, or another supported platform.
One common method for detecting the operating system is to leverage pre-defined environment
variables that contain information about the system. MSYS provides a variable called `$OSTYPE`,
which holds a string that identifies the operating system type. By checking the value of this
variable, scripts can determine whether they are running on Windows, Linux, macOS, or another
supported platform.

## Utilizing System Commands

Another approach involves using system commands that provide information about the current operating system. The `uname` command, for example, can print various details about the system, including the operating system name. By parsing the output of this command, scripts can identify the specific operating system and take appropriate actions.
Another approach involves using system commands that provide information about the current operating
system. The `uname` command, for example, can print various details about the system, including the
operating system name. By parsing the output of this command, scripts can identify the specific
operating system and take appropriate actions.

## Advantages and Limitations

Detecting the operating system through MSYS offers several advantages:

1. **Consistent Development Experience:** By using MSYS, developers can work in a familiar Unix-like environment, even on Windows, ensuring a consistent development experience across platforms.
1. **Consistent Development Experience:** By using MSYS, developers can work in a familiar Unix-like
environment, even on Windows, ensuring a consistent development experience across platforms.

2. **Portability:** Scripts that detect the operating system through MSYS can be easily ported to other Unix-like environments, as they rely on standard bash features and commands.
2. **Portability:** Scripts that detect the operating system through MSYS can be easily ported to
other Unix-like environments, as they rely on standard bash features and commands.

3. **Integration with MinGW:** MSYS is often used in conjunction with MinGW, allowing developers to create native Windows applications using the GNU toolchain.
3. **Integration with MinGW:** MSYS is often used in conjunction with MinGW, allowing developers to
create native Windows applications using the GNU toolchain.

However, there are also some limitations to consider:

1. **Limited to MSYS Environment:** The techniques for detecting the operating system are specific to the MSYS environment and may not work in other Windows environments, such as PowerShell or the native Command Prompt.
1. **Limited to MSYS Environment:** The techniques for detecting the operating system are specific
to the MSYS environment and may not work in other Windows environments, such as PowerShell or the
native Command Prompt.

2. **Potential Compatibility Issues:** While MSYS aims to provide a Unix-like environment, there may be compatibility issues with certain Windows-specific tools or libraries.
2. **Potential Compatibility Issues:** While MSYS aims to provide a Unix-like environment, there may
be compatibility issues with certain Windows-specific tools or libraries.

3. **Learning Curve:** Developers who are unfamiliar with Unix-like environments or MSYS may face a steeper learning curve when using these techniques.
3. **Learning Curve:** Developers who are unfamiliar with Unix-like environments or MSYS may face a
steeper learning curve when using these techniques.

## Conclusion

Detecting the operating system through MSYS is a valuable skill for developers working in a Unix-like environment on Windows. By leveraging environment variables, system commands, and other techniques, scripts can identify the underlying operating system and adapt their behavior accordingly. While there are some limitations to consider, the ability to work in a consistent development environment across platforms makes MSYS a powerful tool for cross-platform development.
Detecting the operating system through MSYS is a valuable skill for developers working in a
Unix-like environment on Windows. By leveraging environment variables, system commands, and other
techniques, scripts can identify the underlying operating system and adapt their behavior
accordingly. While there are some limitations to consider, the ability to work in a consistent
development environment across platforms makes MSYS a powerful tool for cross-platform development.
Loading

0 comments on commit 41ba538

Please sign in to comment.