plexer-cli 0.1.3__tar.gz → 0.1.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/workflows/release.yml +14 -0
  2. plexer_cli-0.1.8/Dockerfile +36 -0
  3. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/PKG-INFO +1 -1
  4. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/src/plexer_cli/main.py +1 -1
  5. plexer_cli-0.1.3/Dockerfile +0 -45
  6. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  7. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  8. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  9. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/dependabot.yml +0 -0
  10. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/workflows/openssf_scorecard.yml +0 -0
  11. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.github/workflows/run_full_test_suite.yml +0 -0
  12. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.gitignore +0 -0
  13. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.pre-commit-config.yaml +0 -0
  14. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.python-version +0 -0
  15. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.tool-versions +0 -0
  16. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.trivyignore.yaml +0 -0
  17. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.vscode/launch.json +0 -0
  18. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.vscode/plexer-cli.code-workspace +0 -0
  19. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/.vscode/settings.json +0 -0
  20. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/CODE_OF_CONDUCT.md +0 -0
  21. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/LICENSE +0 -0
  22. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/README.md +0 -0
  23. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/SECURITY.md +0 -0
  24. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/pyproject.toml +0 -0
  25. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/src/plexer_cli/__init__.py +0 -0
  26. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/src/plexer_cli/artifact.py +0 -0
  27. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/src/plexer_cli/const.py +0 -0
  28. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/src/plexer_cli/file_manager.py +0 -0
  29. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/src/plexer_cli/metadata.py +0 -0
  30. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/bootstrap/blank.mkv +0 -0
  31. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/bootstrap/blank.mp4 +0 -0
  32. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/bootstrap/bootstrap_plexer_e2e.sh +0 -0
  33. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/conftest.py +0 -0
  34. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/test_artifact.py +0 -0
  35. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/test_file_manager.py +0 -0
  36. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tests/test_metadata.py +0 -0
  37. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/tox.ini +0 -0
  38. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/trivyignore.yaml +0 -0
  39. {plexer_cli-0.1.3 → plexer_cli-0.1.8}/uv.lock +0 -0
@@ -1,6 +1,12 @@
1
1
  name: Release
2
2
 
3
3
  on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag:
7
+ description: 'Tag to release'
8
+ required: true
9
+ default: 'v0.0.1'
4
10
  push:
5
11
  # run only against version tags
6
12
  tags:
@@ -23,7 +29,15 @@ jobs:
23
29
 
24
30
  steps:
25
31
  - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
32
+ if: ${{ github.event_name == 'push' }}
26
33
  with:
34
+ ref: ${{ github.ref_name }}
35
+ fetch-depth: 0
36
+
37
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
38
+ if: ${{ github.event_name == 'workflow_dispatch' }}
39
+ with:
40
+ ref: ${{ github.event.inputs.tag }}
27
41
  fetch-depth: 0
28
42
 
29
43
  - name: Install uv
@@ -0,0 +1,36 @@
1
+ # syntax=docker/dockerfile:1
2
+
3
+ FROM ghcr.io/astral-sh/uv:alpine3.23@sha256:7d1ef166503c3c123a51f17d4eeb4dc748c33ebf4ae3bfad54f1163e1c36afcb AS build
4
+
5
+ WORKDIR /build
6
+
7
+ COPY pyproject.toml uv.lock README.md LICENSE /build/
8
+ RUN mkdir -p /build/src
9
+ COPY src/ /build/src/
10
+
11
+ RUN uv sync --group build
12
+
13
+ RUN apk update && \
14
+ apk add --no-cache libmagic pipx
15
+
16
+ # https://pipx.pypa.io/latest/how-to/pin-packages.html
17
+ RUN pipx install hatch==1.18.1 && pipx pin hatch
18
+ RUN PATH="$PATH:/root/.local/bin" hatch build
19
+
20
+ ########################
21
+
22
+ FROM python:3.14-alpine3.23@sha256:e7cff362a12454395f8dc99607c21a602ea880cdce03538877b90c2ba932b16f
23
+
24
+ RUN addgroup --system --gid 1001 plexer && \
25
+ adduser --system --uid 1001 --ingroup plexer plexer
26
+
27
+ COPY --chown=plexer:plexer --from=build /build/dist/ /app/dist/
28
+
29
+ RUN python -m venv /app/venv
30
+ ENV PATH="/app/venv/bin:$PATH"
31
+ RUN pip install /app/dist/plexer_cli-*.whl
32
+
33
+ USER plexer
34
+
35
+ ENTRYPOINT [ "/app/venv/bin/plexer" ]
36
+ CMD [ "--help" ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: plexer_cli
3
- Version: 0.1.3
3
+ Version: 0.1.8
4
4
  Summary: Normalize media files and directories for use with Plex Media Server
5
5
  Project-URL: Repository, https://github.com/magneticstain/plexer
6
6
  Project-URL: Documentation, https://github.com/magneticstain/plexer-cli/wiki
@@ -6,7 +6,7 @@ Main App Entrypoint
6
6
  """
7
7
 
8
8
  __author__ = "magneticstain"
9
- __version__ = "0.1.3"
9
+ __version__ = "0.1.8"
10
10
  __license__ = "MIT"
11
11
 
12
12
  import argparse
@@ -1,45 +0,0 @@
1
- # syntax=docker/dockerfile:1
2
-
3
- FROM ghcr.io/astral-sh/uv:alpine3.23@sha256:7d1ef166503c3c123a51f17d4eeb4dc748c33ebf4ae3bfad54f1163e1c36afcb AS build
4
-
5
- WORKDIR /build
6
-
7
- # we are unable to use the --require-hashes option as there is no local file defining the hashes
8
- # this is what pip uses for comparison by default.
9
- # However, it can compare the hash against PyPI's hash.
10
- # Since PyPI sends requests over TLS, this should be secure enough for our threat model.
11
- # https://pypi.org/project/pipx/
12
- # RUN pip install pipx==1.7.1 --hash=sha256:a575ced25c507c1b1c978269f5684b5b291e81e3cd14eb3cee196a3c5b304732
13
- RUN uv sync --group build
14
- # https://pipx.pypa.io/latest/how-to/pin-packages.html
15
- RUN pipx install hatch==1.13.0 && pipx pin hatch
16
-
17
- COPY . .
18
-
19
- ENV PATH="$PATH:/root/.local/bin"
20
-
21
- RUN hatch build
22
-
23
- ########################
24
-
25
- # Google distroless Python 3.13 Alpine image
26
- FROM gcr.io/distroless/python3-debian13:nonroot-arm64@sha256:f7a5fde15cf1e287dffac51d5d683e06dc6d4e5f63dde693fc8a4e54ac47cbcd
27
-
28
- RUN apk update && \
29
- apk add --no-cache libmagic
30
-
31
- RUN addgroup --system --gid 1001 plexer && \
32
- adduser --system --uid 1001 --ingroup plexer plexer
33
-
34
- WORKDIR /app
35
-
36
- COPY --chown=plexer:plexer --from=build /build/dist/ ./dist/
37
-
38
- RUN python -m venv /app/venv
39
- ENV PATH="/app/venv/bin:$PATH"
40
- RUN pip install ./dist/plexer_cli-*.whl
41
-
42
- USER plexer
43
-
44
- ENTRYPOINT [ "/app/venv/bin/plexer" ]
45
- CMD [ "--help" ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes