Skip to content

Commit

Permalink
feat: deb
Browse files Browse the repository at this point in the history
  • Loading branch information
skynet2 committed Jan 3, 2025
1 parent 6a0dc5f commit ff1853a
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 13 deletions.
18 changes: 17 additions & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ on:
push:
branches:
- master
- initial
- linux

jobs:
version:
Expand All @@ -11,16 +11,20 @@ jobs:
MAJOR_VERSION: 0
outputs:
versionSemVerOut: v${{ steps.semVer.outputs.semVersion }}
rawVerOut: ${{ steps.semVer.outputs.semVersion }}
steps:
- id: semVer
run: echo "semVersion=$MAJOR_VERSION.0.${{ github.run_number }}" >> "$GITHUB_OUTPUT"
- id: raw
run: echo "rawVerOut=$MAJOR_VERSION.0.${{ github.run_number }}" >> "$GITHUB_OUTPUT"
ci:
runs-on: ubuntu-latest
container: golang:1.23-bookworm
needs:
- version
env:
SEM_VERSION: ${{needs.version.outputs.versionSemVerOut}}
RAW_VERSION: ${{needs.version.outputs.rawVerOut}}
steps:
- name: Install zip
uses: montudor/action-zip@v1
Expand All @@ -45,6 +49,8 @@ jobs:
args: zip -qq -r browser-switcher-${{ env.SEM_VERSION }}-windows-amd64.zip .
working-directory: dist/win/

- run: cd ci && bash ./deb.sh

- name: upload windows artifact
uses: actions/upload-release-asset@v1
env:
Expand All @@ -54,3 +60,13 @@ jobs:
asset_path: browser-switcher-${{ env.SEM_VERSION }}-windows-amd64.zip
asset_name: browser-switcher-${{ env.SEM_VERSION }}-windows-amd64.zip
asset_content_type: application/octet-stream

- name: upload linux artifact
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ci/browser-switcher_${{ env.RAW_VERSION }}.deb
asset_name: browser-switcher_${{ env.RAW_VERSION }}.deb
asset_content_type: application/octet-stream
21 changes: 10 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,25 @@ debug-win: build-win
@#cp fyne-cross/bin/windows-amd64/browser-switcher.exe /mnt/i/BrowserSwitcher.exe
## powershell -ExecutionPolicy Bypass -File register.ps1

.PHONY: build-linux
build-linux:
@mkdir -p dist/linux
@GOOS=linux go build -buildvcs=false -o dist/linux/browser-switcher-proxied cmd/switcher/main.go
@GOOS=linux go build -buildvcs=false -o dist/linux/browser-switcher cmd/proxy/main.go cmd/proxy/linux.go
@cp -f scripts/register.sh dist/linux/
@cp -f scripts/browser-switcher.desktop dist/linux

.PHONY: debug-linux
debug-linux: build-linux
@sudo mkdir -p /etc/browser-switcher
@cd dist/linux && bash register.sh
@mkdir -p ~/BrowserSwitcher
@cd dist/linux && bash install.sh

.PHONY: lint
lint:
@golangci-lint run

.PHONY: build
build: build-win build-linux

.PHONY: build-linux
build-linux:
@mkdir -p dist/linux
@GOOS=linux go build -buildvcs=false -o dist/linux/browser-switcher-proxied cmd/switcher/main.go
@GOOS=linux go build -buildvcs=false -o dist/linux/browser-switcher cmd/proxy/main.go cmd/proxy/linux.go
@cp -f scripts/register.sh dist/linux/
@cp -f scripts/browser-switcher.desktop dist/linux

.PHONY: build-win
build-win:
@mkdir -p dist/win
Expand Down
40 changes: 40 additions & 0 deletions ci/deb.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash
RAW_VERSION=${RAW_VERSION:-1.0.1}
TARGET_FOLDER=browser-switcher_$RAW_VERSION

mkdir -p $TARGET_FOLDER/{DEBIAN,usr/local/bin,usr/share/applications}

cat <<EOF > $TARGET_FOLDER/DEBIAN/control
Package: browser-switcher
Version: $RAW_VERSION
Architecture: all
Maintainer: FT-T <[email protected]>
Description: A tool to switch between browsers.
Priority: optional
Depends: xdg-utils
EOF

cp ../dist/linux/browser-switcher $TARGET_FOLDER/usr/local/bin/browser-switcher
cp ../dist/linux/browser-switcher-proxied $TARGET_FOLDER/usr/local/bin/browser-switcher-proxied
cp ../dist/linux/browser-switcher.desktop $TARGET_FOLDER/usr/share/applications/browser-switcher.desktop

cat <<EOF > browser-switcher_$RAW_VERSION/DEBIAN/postinst
#!/bin/bash
set -e
# Create required directories
mkdir -p ~/BrowserSwitcher
xdg-mime default browser-switcher.desktop x-scheme-handler/http
xdg-mime default browser-switcher.desktop x-scheme-handler/https
xdg-settings set default-web-browser browser-switcher.desktop
update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/local/bin/browser-switcher 400
update-alternatives --set x-www-browser /usr/local/bin/browser-switcher
xdg-settings set default-web-browser browser-switcher.desktop
EOF

chmod 755 browser-switcher_$RAW_VERSION/DEBIAN/postinst

dpkg-deb --build $TARGET_FOLDER
6 changes: 5 additions & 1 deletion scripts/register.sh → scripts/install.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#!/bin/bash
sudo mkdir -p /etc/browser-switcher
mkdir -p ~/BrowserSwitcher

sudo cp -f browser-switcher /usr/local/bin/browser-switcher && sudo chmod 777 /usr/local/bin/browser-switcher
sudo cp -f browser-switcher-proxied /usr/local/bin/browser-switcher-proxied && sudo chmod 777 /usr/local/bin/browser-switcher-proxied

Expand All @@ -8,4 +12,4 @@ sudo xdg-mime default browser-switcher.desktop x-scheme-handler/https
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/local/bin/browser-switcher 400
sudo update-alternatives --config x-www-browser

xdg-settings set default-web-browser browser-switcher.desktop
sudo xdg-settings set default-web-browser browser-switcher.desktop

0 comments on commit ff1853a

Please sign in to comment.