Skip to content

Commit 6bf32b6

Browse files
committed
Initial commit
0 parents  commit 6bf32b6

37 files changed

+4192
-0
lines changed

.github/workflows/release.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
runs-on: windows-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Setup Go
21+
uses: actions/setup-go@v5
22+
with:
23+
go-version: '1.24'
24+
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: '20'
29+
30+
- name: Install Wails
31+
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest
32+
33+
- name: Install frontend dependencies
34+
run: npm install
35+
working-directory: frontend
36+
37+
- name: Build
38+
run: wails build -platform windows/amd64 -ldflags "-s -w -X main.Version=${{ github.ref_name }}"
39+
40+
- name: Install UPX
41+
run: choco install upx -y
42+
43+
- name: Compress with UPX
44+
run: upx --best --lzma build/bin/fs-mod-sync.exe
45+
46+
- name: Generate changelog
47+
id: changelog
48+
run: |
49+
$previous_tag = git describe --tags --abbrev=0 HEAD^ 2>$null
50+
if ($LASTEXITCODE -ne 0) {
51+
$commits = git log --pretty=format:"- %s (%h)" ${{ github.ref_name }}
52+
} else {
53+
$commits = git log --pretty=format:"- %s (%h)" "$previous_tag..${{ github.ref_name }}"
54+
}
55+
$commits = $commits -replace '"', '\"'
56+
$commits = $commits -replace "`r`n", "`n"
57+
"CHANGELOG<<EOF" >> $env:GITHUB_OUTPUT
58+
$commits >> $env:GITHUB_OUTPUT
59+
"EOF" >> $env:GITHUB_OUTPUT
60+
shell: pwsh
61+
62+
- name: Create Release
63+
uses: softprops/action-gh-release@v2
64+
with:
65+
files: build/bin/fs-mod-sync.exe
66+
body: |
67+
## Changes
68+
${{ steps.changelog.outputs.CHANGELOG }}
69+
draft: false
70+
prerelease: false

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
build/bin
2+
node_modules
3+
frontend/dist
4+
.DS_Store

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Ioannis Karamperis
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<p align="center">
2+
<img src="build/appicon.png" width="128" height="128" alt="FS Mod Sync">
3+
</p>
4+
5+
# FS Mod Sync
6+
7+
A cross-platform desktop application that synchronizes mods from Farming Simulator dedicated servers to your local machine. Supports both FS22 and FS25.
8+
9+
![License](https://img.shields.io/github/license/FragnetNetwork/fs-mod-sync)
10+
![Release](https://img.shields.io/github/v/release/FragnetNetwork/fs-mod-sync)
11+
12+
## Features
13+
14+
- Automatically detects game version (FS22/FS25) from server
15+
- Compares local mod versions with server versions
16+
- Downloads only missing or outdated mods
17+
18+
## Usage
19+
20+
1. Enable **Public Mod Download** on your Farming Simulator dedicated server control panel
21+
2. Copy the mods link (e.g., `http://IP:PORT/mods.html`)
22+
3. Run FS Mod Sync and paste the URL
23+
4. Select your local mods directory
24+
5. Click sync to download missing/outdated mods
25+
26+
## Download
27+
28+
Get the latest release from the [Releases](https://github.com/FragnetNetwork/fs-mod-sync/releases) page.
29+
30+
> **Note:** This application is not code-signed. Windows SmartScreen may show a warning when you first run it. Click "More info" then "Run anyway" to proceed.
31+
32+
## Building from Source
33+
34+
Requires Go 1.24+ and Node.js 18+.
35+
36+
```bash
37+
# Install Wails CLI
38+
go install github.com/wailsapp/wails/v2/cmd/wails@latest
39+
40+
# Install frontend dependencies
41+
cd frontend && npm install && cd ..
42+
43+
# Development mode
44+
wails dev
45+
46+
# Build for production
47+
wails build
48+
```
49+
50+
## License
51+
52+
MIT License - see [LICENSE](LICENSE) for details.

0 commit comments

Comments
 (0)