### Create and Navigate to Installation Directory Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Linux-Setup-Guide.md Creates a new directory for the installation and then changes the current working directory into it. This organizes the installation files. ```bash mkdir {{prefill_name}} cd {{prefill_name}}/ ``` -------------------------------- ### Install Prerequisites on Ubuntu/Debian Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Linux-Setup-Guide.md Installs essential tools like curl, jq, unzip, and wget required for the setup process. The -y flag automatically confirms any prompts. ```bash # Installs the required software apt-get install curl jq unzip wget -y ``` -------------------------------- ### Download and Execute Install Script Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Linux-Setup-Guide.md Downloads the update script from the repository, makes it executable, and then runs it to install the software. Finally, it makes the main executable file runnable. ```bash # Downloads the install script curl -o update.sh --location "https://raw.githubusercontent.com/tpill90/{{repo_name}}/master/scripts/update.sh" # Allows the install script to be executed chmod +x update.sh # Does the install! ./update.sh # Allows {{prefill_name}} to be executed chmod +x ./{{prefill_name}} ``` -------------------------------- ### Bash and PowerShell Commands Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/test-pages/SyntaxHighlightingTest.md Demonstrates common Bash and PowerShell commands for installing software, cloning repositories, and initializing submodules. ```powershell ./{{prefill_name}} prefill --top --os linux --verbose choco install dotnet-sdk --version=8.0.100 git clone --recurse-submodules -j8 https://github.com/tpill90/steam-lancache-prefill.git git submodule update --init --recursive ``` -------------------------------- ### Install Git Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Installs Git using Chocolatey if it is not already installed. This is required for cloning the repository. ```powershell choco install git.install ``` -------------------------------- ### Install .NET 8 SDK Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Installs the .NET 8 SDK using Chocolatey. Ensure Chocolatey is installed first. ```powershell choco install dotnet-sdk --version=8.0.100 ``` -------------------------------- ### Setup Benchmark Workload with Selected Apps Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Benchmark.md Creates a benchmark workload using apps previously selected with 'select-apps'. This is ideal for aligning with games typically downloaded by clients. ```bash ./SteamPrefill benchmark setup --use-selected ``` -------------------------------- ### Setup Benchmark Workload with All Owned Apps Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Benchmark.md Creates a benchmark workload using all currently owned applications. This can be useful for a comprehensive test. ```bash ./SteamPrefill benchmark setup --all ``` -------------------------------- ### Install Python and MkDocs Dependencies Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/mkdocs-setup.md Installs Python using Chocolatey and then installs the required MkDocs packages from the requirements.txt file. ```powershell # Installs Python from Chocolatey. Alternatively Python can be manually installed. choco install python # Installs required mkdocs package pip install -r requirements.txt ``` -------------------------------- ### INI Configuration File Example Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/test-pages/SyntaxHighlightingTest.md Shows a basic INI file structure with a [Unit] section and a WorkingDirectory setting, commonly used for service configurations. ```ini [Unit] Description={{prefill_name}} # Set this to the directory where {{prefill_name}} is installed. # Example : /home/tim/{{prefill_name}} WorkingDirectory= ``` -------------------------------- ### Setup Benchmark Workload with Small Chunks Preset Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Benchmark.md Quickly sets up a benchmark with a predefined workload characterized by small file chunks, representing a worst-case scenario for chunk size. ```bash ./SteamPrefill benchmark setup --preset SmallChunks ``` -------------------------------- ### Setup Benchmark Workload with Large Chunks Preset Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Benchmark.md Quickly sets up a benchmark with a predefined workload characterized by large file chunks, representing a best-case scenario where chunk sizes are close to 1 MiB. ```bash ./SteamPrefill benchmark setup --preset LargeChunks ``` -------------------------------- ### Run Docker Container with 'select-apps' Command Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Docker-Setup-Guide.md Run the {{prefill_name}} Docker container and execute the 'select-apps' command. This is useful for managing application selections within the prefill setup. ```bash docker run -it --rm --net=host \ --volume ~/.config/{{prefill_name}}:/Config \ tpill90/{{repo_name}}:latest \ select-apps ``` -------------------------------- ### Enabling and Starting the Scheduled Job Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Scheduled-Job.md Commands to reload the systemd daemon, enable and start the timer, and enable the associated service. This ensures the scheduled job is active and will run as configured. ```bash sudo systemctl daemon-reload sudo systemctl enable --now {{prefill_name.lower()}}.timer sudo systemctl enable {{prefill_name.lower()}} ``` -------------------------------- ### Setup Benchmark Workload with Specific AppIDs Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Benchmark.md Includes one or more specific app IDs in the benchmark workload file. This is useful for testing particular applications without altering previously selected apps. ```bash ./SteamPrefill benchmark setup --appid 123456 789012 ``` -------------------------------- ### Update Package Lists Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Linux-Setup-Guide.md Ensures that your system has the latest information about available software packages before installing new ones. ```bash # Makes sure that the latest app versions will be installed apt-get update ``` -------------------------------- ### Systemd Service Configuration for Prefill Job Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Scheduled-Job.md Define a systemd service unit that will be triggered by the timer. Ensure User, WorkingDirectory, and ExecStart are correctly set to your Prefill installation path and executable. ```ini [Unit] Description={{prefill_name}} After=remote-fs.target Wants=remote-fs.target [Service] # Replace with your username User= # Set this to the directory where {{prefill_name}} is installed. # Example : /home/tim/{{prefill_name}} WorkingDirectory= # This should be the full path to {{prefill_name}}, as well as any additional option flags # Example: /home/tim/{{prefill_name}}/{{prefill_name}} prefill --no-ansi ExecStart= Type=oneshot Nice=19 [Install] WantedBy=multi-user.target ``` -------------------------------- ### Systemd Timer Configuration for Daily Execution Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Scheduled-Job.md Configure a systemd timer to run a service daily at a specific time. This example sets the job to run at 4 AM local time. ```ini [Unit] Description={{prefill_name}} run daily Requires={{prefill_name.lower()}}.service [Timer] # Runs every day at 4am (local time) OnCalendar=*-*-* 4:00:00 # Set to true so we can store when the timer last triggered on disk. Persistent=true [Install] WantedBy=timers.target ``` -------------------------------- ### Setup Benchmark Workload without ANSI Colors Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Benchmark.md Creates a benchmark workload with plain text output, disabling ANSI escape sequences. Use this if your terminal does not support colors or when redirecting output to a file. ```bash ./SteamPrefill benchmark setup --no-ansi ``` -------------------------------- ### Serve MkDocs Documentation Locally Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/mkdocs-setup.md Launches the MkDocs development server to preview documentation changes in real-time. Access the site at http://127.0.0.1:8000/. ```bash mkdocs serve ``` -------------------------------- ### Perform Initial Prefill Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/README.md Execute this command after selecting apps to begin downloading them. Initial downloads will be at your internet line speed. This populates the Lancache. ```powershell ./SteamPrefill prefill ``` -------------------------------- ### Select Apps for Prefill Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/README.md Run this command to open an interactive menu for selecting which of your owned Steam apps you want to prefill. Selections are saved permanently. ```powershell ./SteamPrefill select-apps ``` -------------------------------- ### Build Project Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Compiles the project from the repository root. This command generates an executable file. Subsequent builds will be incremental. ```powershell dotnet build ``` -------------------------------- ### Basic Prefill Command Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Prefill.md Initiates a prefill run to download necessary game updates or new games. ```powershell ./{{prefill_name}} prefill ``` -------------------------------- ### Prefill with Multiple Flags Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Prefill.md Combines flags to prefill the most popular games, download only the Linux version, and display detailed log output. ```powershell ./{{prefill_name}} prefill --top --os linux --verbose ``` -------------------------------- ### Check App Status Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Select-Apps.md Run this command to view a list of selected apps and their download sizes. This provides a basic overview of the prefill status. ```powershell ./{{prefill_name}} select-apps status ``` -------------------------------- ### Prefill Entire Library Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Prefill.md Downloads all owned apps to ensure the cache is fully primed, useful for empty caches or to include new purchases automatically. ```powershell ./{{prefill_name}} prefill --all ``` -------------------------------- ### Force Prefill All Apps Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Prefill.md Re-downloads every app regardless of update status, useful for diagnostics or benchmarking. This overrides the default behavior of only downloading newer versions. ```powershell ./{{prefill_name}} prefill --force ``` -------------------------------- ### Run Latest Docker Container Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Docker-Setup-Guide.md Download and run the latest version of the {{prefill_name}} Docker container. This command mounts a configuration directory and uses host networking. ```bash docker run -it --rm --net=host \ --volume ~/.config/{{prefill_name}}:/Config \ tpill90/{{repo_name}}:latest ``` -------------------------------- ### PowerShell Profile Configuration Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/test-pages/SyntaxHighlightingTest.md Illustrates a PowerShell script to ensure the profile file exists and contains UTF8 encoding settings for consistent console behavior. ```powershell if(!(Test-Path $profile)) { New-Item -Path $profile -Type File -Force } if(!(gc $profile).Contains("OutputEncoding")) { ac $profile "[console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()"; & $profile; } ``` -------------------------------- ### Run Project with Arguments Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Executes the project and passes arguments to the application. The `--` separator is used to distinguish application arguments from `dotnet run` arguments. ```powershell dotnet run -- prefill --all ``` -------------------------------- ### Run Project in Release Mode Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Compiles and runs the project with optimizations enabled for maximum performance. This is achieved by specifying the 'Release' configuration. ```powershell dotnet run --configuration Release ``` -------------------------------- ### Run Unit Tests Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Compiles and executes all unit tests within the repository. This command verifies the correctness of different project components. ```powershell dotnet test ``` -------------------------------- ### Run Project in Debug Mode Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Executes the project, compiling any changes. This mode is slower but provides useful debugging information. Assumes the working directory is the project root. ```powershell dotnet run ``` -------------------------------- ### Clone Repository with Submodules Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Clones the project repository from GitHub, including all required submodules. The `-j8` flag allows for parallel downloading of submodules. ```powershell git clone --recurse-submodules -j8 https://github.com/tpill90/{{repo_name}}.git ``` -------------------------------- ### Customized App Status Sorting Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/detailed-command-usage/Select-Apps.md Use this command to sort the app list by size in descending order. This is useful for identifying the largest games first. ```powershell ./{{prefill_name}} select-apps status --sort-order descending --sort-by size ``` -------------------------------- ### Update Git Submodules Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/dev-guides/Compiling-from-source.md Initializes and updates Git submodules for an already cloned repository. Use this if submodules were not cloned initially. ```powershell git submodule update --init --recursive ``` -------------------------------- ### Enable UTF8 Encoding in PowerShell Profile Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/install-guides/Windows-Setup-Guide.md This PowerShell script ensures that UTF8 encoding is enabled for both input and output in your console. It checks if the profile file exists and creates it if necessary, then appends the UTF8 encoding configuration if it's not already present. Run this in PowerShell to configure your terminal. ```powershell if(!(Test-Path $profile)) { New-Item -Path $profile -Type File -Force } if(!(gc $profile).Contains("OutputEncoding")) { ac $profile "[console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()"; & $profile; } ``` -------------------------------- ### Remove ANSI Escape Codes from Logs Source: https://github.com/tpill90/steam-lancache-prefill/blob/master/docs/mkdocs/faq.md Use the --no-ansi flag to strip unsupported ANSI escape characters from log output, preventing garbled text in certain terminals. ```text [6:20:46 PM] Starting [38;5;80mCounter-Strike: Global Offensive [0m [6:20:46 PM] Downloading [38;5;170m12.91 GiB [0m ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.