4 Commits

Author SHA1 Message Date
√(noham)²
21bacce76b scripts ! 2024-08-27 15:32:16 +02:00
√(noham)²
f1a316961c Update build.sh 2024-08-27 13:44:05 +02:00
√(noham)²
0e2a4899a5 build script 2024-08-27 13:24:31 +02:00
√(noham)²
091182c555 changes 2024-08-27 12:38:17 +02:00
6 changed files with 146 additions and 85 deletions

View File

@@ -1,2 +1,3 @@
TOKEN = ""
PRIVATE_PARENT_ID = ""
GOPLOAD_ACCOUNT_ID = ""

View File

@@ -60,9 +60,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check runner architecture
run: uname -m
- name: Check-out repository
uses: actions/checkout@v1
@@ -86,20 +83,20 @@ jobs:
script-name: gofilecli.py
onefile: true
- name: Rename Executable
run: mv build/gofilecli.bin build/gofilecli
- name: Upload Artifact[linux-x64]
uses: actions/upload-artifact@v3.1.3
with:
name: GoFileCLI_linux-x64
path: |
build/gofilecli.bin
build/gofilecli
build-macos:
runs-on: macos-latest
steps:
- name: Check runner architecture
run: uname -m
- name: Check-out repository
uses: actions/checkout@v1
@@ -118,22 +115,27 @@ jobs:
pip install nuitka
- name: Build Executable with Nuitka
# --macos-app-icon=resources/icon.icns
run: |
python -m nuitka --onefile --assume-yes-for-downloads --output-dir=dist --macos-target-arch=arm64 gofilecli.py
python -m nuitka --onefile --assume-yes-for-downloads --output-dir=dist_x86_64 --macos-target-arch=x86_64 gofilecli.py
- name: Rename Executable
run: |
mv dist/gofilecli.bin dist/gofilecli
mv dist_x86_64/gofilecli.bin dist_x86_64/gofilecli
- name: Upload Artifact [osx-arm64]
uses: actions/upload-artifact@v3.1.3
with:
name: GoFileCLI_osx-x64
path: dist_x86_64/gofilecli.bin
path: dist_x86_64/gofilecli
- name: Upload Artifact [osx-arm64]
uses: actions/upload-artifact@v3.1.3
with:
name: GoFileCLI_osx-arm64
path: dist/gofilecli.bin
path: dist/gofilecli
create_draft_release:
name: Create Github draft release

View File

@@ -1,74 +0,0 @@
name: Build Latest and Release
on:
workflow_dispatch:
inputs:
doRelease:
description: 'Publish new release'
type: boolean
default: false
required: false
tag:
type: string
description: 'Release version tag (e.g. v1.2.3)'
required: true
ref:
type: string
description: 'Git ref from which to release'
required: true
default: 'main'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build-macos:
runs-on: macos-latest
steps:
- name: Check runner architecture
run: uname -m
- name: Check-out repository
uses: actions/checkout@v1
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: |
**/requirements*.txt
architecture: 'arm64'
- name: Install Dependencies
run: |
pip install -r requirements.txt
pip install nuitka
- name: Build Executable with Nuitka
run: |
python -m nuitka --onefile --assume-yes-for-downloads --output-dir=dist --macos-target-arch=arm64 gofilecli.py
python -m nuitka --onefile --assume-yes-for-downloads --output-dir=dist_x86_64 --macos-target-arch=x86_64 gofilecli.py
- name: Upload Artifact [osx-arm64]
uses: actions/upload-artifact@v3.1.3
with:
name: GoFileCLI_osx-x64
path: dist_x86_64/gofilecli.bin
- name: Upload Artifact [osx-arm64]
uses: actions/upload-artifact@v3.1.3
with:
name: GoFileCLI_osx-arm64
path: dist/gofilecli.bin
download:
runs-on: ubuntu-latest
needs: [build-macos]
steps:
- name: Fetch executables
uses: actions/download-artifact@v3
- name: List Files
run: |
ls -la

24
scripts/build.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Error: No tag provided."
echo "Usage: $0 <tag>"
exit 1
fi
tag=$1
source ~/miniconda3/etc/profile.d/conda.sh
conda activate 310
python -m nuitka --onefile --assume-yes-for-downloads --output-dir=dist --static-libpython=no gofilecli.py
mv dist/gofilecli.bin ./gofilecli
mkdir -p GoFileCLI_linux-arm64
mv ./gofilecli GoFileCLI_linux-arm64/
date=$(date +"%Y%m%d")
tar cvzfp "GoFileCLI_linux-arm64_${date}.tar.gz" GoFileCLI_linux-arm64
gh release upload ${tag} "GoFileCLI_linux-arm64_${date}.tar.gz"
rm -rf GoFileCLI_linux-arm64

63
scripts/install.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/bin/bash
owner="NohamR"
repo="GoFileCLI"
latest_release=$(curl -s https://api.github.com/repos/$owner/$repo/releases/latest)
tag_name=$(echo "$latest_release" | jq -r '.tag_name')
assets=$(echo "$latest_release" | jq -r '.assets[] | .name')
echo "Latest release tag: $tag_name"
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
if [[ "$OS" == "darwin" ]]; then
OS="osx"
fi
ARCH=$(uname -m)
if [[ "$ARCH" == "x86_64" ]]; then
ARCH="x64"
elif [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
ARCH="arm64"
else
echo "Unsupported architecture: $ARCH"
exit 1
fi
expected_file="GoFileCLI_${OS}-${ARCH}_*.tar.gz"
if [[ "$OS" == "windows" ]]; then
expected_file="GoFileCLI_${OS}-${ARCH}_*.zip"
fi
selected_asset=$(echo "$assets" | grep -E "^GoFileCLI_${OS}-${ARCH}_.*")
if [[ -z "$selected_asset" ]]; then
echo "No matching asset found for OS: $OS, Architecture: $ARCH"
exit 1
fi
echo "Selected asset: $selected_asset"
download_url=$(echo "$latest_release" | jq -r --arg name "$selected_asset" '.assets[] | select(.name == $name) | .browser_download_url')
echo "Downloading $selected_asset from $download_url..."
curl -LO "$download_url"
if [[ ! -f "$selected_asset" ]]; then
echo "Download failed."
exit 1
fi
tar -xzf "$selected_asset"
extracted_dir=$(find . -type d -name "GoFileCLI*" | head -n 1)
if [[ -d "$extracted_dir" ]]; then
sudo mv "$extracted_dir/gofilecli" /usr/local/bin/
chmod +x /usr/local/bin/gofilecli
echo "Installation completed. You can now use 'gofilecli'."
else
echo "Failed to find the extracted directory."
exit 1
fi
rm -rf "$selected_asset" "$extracted_dir"

45
scripts/uninstall.sh Normal file
View File

@@ -0,0 +1,45 @@
#!/bin/bash
BINARY_NAME="gofilecli"
BINARY_PATH=$(which $BINARY_NAME)
if [[ -z "$BINARY_PATH" ]]; then
echo "$BINARY_NAME is not installed or not found in PATH."
exit 1
fi
echo "Found $BINARY_NAME at $BINARY_PATH."
read -p "Are you sure you want to uninstall $BINARY_NAME? [y/N]: " confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "Uninstallation cancelled."
exit 0
fi
sudo rm -f "$BINARY_PATH"
if [[ ! -f "$BINARY_PATH" ]]; then
echo "$BINARY_NAME has been successfully uninstalled."
else
echo "Failed to uninstall $BINARY_NAME."
exit 1
fi
echo "Checking for any leftover files or directories..."
leftovers=$(find /usr/local/bin -name "$BINARY_NAME" 2>/dev/null)
if [[ -n "$leftovers" ]]; then
echo "Found leftover files:"
echo "$leftovers"
read -p "Do you want to remove these leftover files? [y/N]: " cleanup_confirm
if [[ "$cleanup_confirm" == "y" || "$cleanup_confirm" == "Y" ]]; then
sudo rm -rf $leftovers
echo "Leftover files removed."
else
echo "Leftover files not removed."
fi
fi
echo "Uninstallation complete."