Skip to content

Commit 5461c67

Browse files
committed
gh-publish
1 parent 2d9a81b commit 5461c67

File tree

4 files changed

+94
-9
lines changed

4 files changed

+94
-9
lines changed

.github/workflows/build.yml

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
2+
name: build
3+
4+
on: [push]
5+
6+
jobs:
7+
build:
8+
strategy:
9+
matrix:
10+
os: [ubuntu-latest, macos-latest]
11+
12+
runs-on: ${{ matrix.os }}
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
- uses: actions/setup-python@v5
17+
with:
18+
python-version: '3.12'
19+
20+
- name: prep
21+
shell: bash
22+
run: |
23+
python -m pip install --upgrade pip
24+
python -m pip install pyinstaller==6.3.0
25+
rm -rf build dist
26+
27+
- name: build
28+
shell: bash
29+
run: |
30+
echo "RUNNER_OS: $RUNNER_OS"
31+
pyinstaller rsyncy.py --onefile --name rsyncy --console
32+
cat build/rsyncy/warn-rsyncy.txt
33+
cd dist; ls -l
34+
if [ "$RUNNER_OS" == "Linux" ]; then
35+
tar -czf rsyncy-linux_amd64.tar.gz rsyncy
36+
elif [ "$RUNNER_OS" == "macOS" ]; then
37+
tar -czf rsyncy-macos_amd64.tar.gz rsyncy
38+
else
39+
echo 'unknown runner'
40+
exit 1
41+
fi
42+
43+
- name: artifact
44+
uses: actions/upload-artifact@v4
45+
if: runner.os == 'Linux'
46+
with:
47+
name: binary-${{ matrix.os }}
48+
path: dist/rsyncy*.tar.gz
49+
50+
- name: artifact
51+
uses: actions/upload-artifact@v4
52+
if: runner.os == 'macOS'
53+
with:
54+
name: binary-${{ matrix.os }}
55+
path: dist/rsyncy*.tar.gz
56+
57+
58+
publish:
59+
runs-on: ubuntu-latest
60+
needs: build
61+
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
62+
63+
steps:
64+
- name: get-artifacts
65+
uses: actions/download-artifact@v4
66+
with:
67+
path: dist
68+
merge-multiple: true
69+
- name: list
70+
shell: bash
71+
run: |
72+
find
73+
ls -l dist
74+
- name: publish-release
75+
uses: softprops/action-gh-release@v1
76+
with:
77+
draft: true
78+
files: dist/*
79+

.github/workflows/lint.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11

2-
name: Lint
2+
name: lint
33

44
on: [push, pull_request]
55

66
jobs:
77
lint:
88
runs-on: ubuntu-latest
99
steps:
10-
- uses: actions/checkout@v2
11-
- uses: actions/setup-python@v2
10+
- uses: actions/checkout@v4
11+
- uses: actions/setup-python@v5
12+
with:
13+
python-version: '3.12'
1214
- uses: psf/black@stable

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ dist/
22
*.egg-info/
33
*.pyc
44
_*
5+
build
6+
rsyncy.spec

README.md

+8-6
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,12 @@ Workaround: connect once to your server via ssh to add it to the known_hosts fil
3434

3535
## Installation
3636

37-
```
38-
pip3 install --user rsyncy
37+
Download: You can download a release directly from [github releases](https://github.com/laktak/rsyncy/releases).
3938

40-
# or if you have pipx
41-
pipx install rsyncy
42-
```
39+
If you OS/platform is not yet supported you can also use either [pipx](https://pipx.pypa.io/latest/installation/) or pip:
4340

44-
Minimum Python version is 3.6.
41+
- `pipx install rsyncy`
42+
- `pip install --user rsyncy`
4543

4644
On macOS you also need to `brew install rsync` because it ships with an rsync from 2006.
4745

@@ -65,7 +63,9 @@ $ rsync -a --info=progress2 -hv FROM/ TO | rsyncy
6563

6664
At the moment `rsyncy` itself has only one option, you can turn off colors via the `NO_COLOR=1` environment variable.
6765

66+
## Known Issues when using ssh behind rsync
6867

68+
ssh uses direct TTY access to make sure that the password is indeed issued by an interactive keyboard user. rsyncy is unable to detect the password prompt and will overwrite it with the status line. You can still enter your password and press enter to continue.
6969

7070
## lf support
7171

@@ -87,6 +87,8 @@ cmd paste-rsync %{{
8787

8888
This shows the copy progress in the `>` line while rsync is running.
8989

90+
If you have downloaded the binary version you can create it with `ln -s rsyncy rsyncy-stat`.
91+
9092
## Development
9193

9294
First record an rsync transfer with [pipevcr](https://github.com/laktak/pipevcr), then replay it to rsyncy when debugging.

0 commit comments

Comments
 (0)