mirror of
https://github.com/NohamR/GoFileCLI.git
synced 2026-03-20 16:09:58 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21bacce76b | ||
|
|
f1a316961c | ||
|
|
0e2a4899a5 | ||
|
|
091182c555 |
@@ -1,2 +1,3 @@
|
|||||||
TOKEN = ""
|
TOKEN = ""
|
||||||
PRIVATE_PARENT_ID = ""
|
PRIVATE_PARENT_ID = ""
|
||||||
|
GOPLOAD_ACCOUNT_ID = ""
|
||||||
22
.github/workflows/release.yml
vendored
22
.github/workflows/release.yml
vendored
@@ -60,9 +60,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check runner architecture
|
|
||||||
run: uname -m
|
|
||||||
|
|
||||||
- name: Check-out repository
|
- name: Check-out repository
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
@@ -85,21 +82,21 @@ jobs:
|
|||||||
nuitka-version: main
|
nuitka-version: main
|
||||||
script-name: gofilecli.py
|
script-name: gofilecli.py
|
||||||
onefile: true
|
onefile: true
|
||||||
|
|
||||||
|
- name: Rename Executable
|
||||||
|
run: mv build/gofilecli.bin build/gofilecli
|
||||||
|
|
||||||
- name: Upload Artifact[linux-x64]
|
- name: Upload Artifact[linux-x64]
|
||||||
uses: actions/upload-artifact@v3.1.3
|
uses: actions/upload-artifact@v3.1.3
|
||||||
with:
|
with:
|
||||||
name: GoFileCLI_linux-x64
|
name: GoFileCLI_linux-x64
|
||||||
path: |
|
path: |
|
||||||
build/gofilecli.bin
|
build/gofilecli
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check runner architecture
|
|
||||||
run: uname -m
|
|
||||||
|
|
||||||
- name: Check-out repository
|
- name: Check-out repository
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
@@ -118,22 +115,27 @@ jobs:
|
|||||||
pip install nuitka
|
pip install nuitka
|
||||||
|
|
||||||
- name: Build Executable with Nuitka
|
- name: Build Executable with Nuitka
|
||||||
# --macos-app-icon=resources/icon.icns
|
|
||||||
run: |
|
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 --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
|
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]
|
- name: Upload Artifact [osx-arm64]
|
||||||
uses: actions/upload-artifact@v3.1.3
|
uses: actions/upload-artifact@v3.1.3
|
||||||
with:
|
with:
|
||||||
name: GoFileCLI_osx-x64
|
name: GoFileCLI_osx-x64
|
||||||
path: dist_x86_64/gofilecli.bin
|
path: dist_x86_64/gofilecli
|
||||||
|
|
||||||
- name: Upload Artifact [osx-arm64]
|
- name: Upload Artifact [osx-arm64]
|
||||||
uses: actions/upload-artifact@v3.1.3
|
uses: actions/upload-artifact@v3.1.3
|
||||||
with:
|
with:
|
||||||
name: GoFileCLI_osx-arm64
|
name: GoFileCLI_osx-arm64
|
||||||
path: dist/gofilecli.bin
|
path: dist/gofilecli
|
||||||
|
|
||||||
create_draft_release:
|
create_draft_release:
|
||||||
name: Create Github draft release
|
name: Create Github draft release
|
||||||
|
|||||||
74
.github/workflows/releasetemp.yml
vendored
74
.github/workflows/releasetemp.yml
vendored
@@ -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
24
scripts/build.sh
Normal 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
63
scripts/install.sh
Normal 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
45
scripts/uninstall.sh
Normal 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."
|
||||||
Reference in New Issue
Block a user