repo: Refactor "repo" subcomand
Refactor the "repo" sub-command for easier maintenance and readability. No functionality changes were made in this refactoring. As a side affect, this treats apt-ostree more like a library so that other StarlingX projects can use apt-ostree to manage images and/or packages. Test Plan PASSED Installed apt-ostree from git repo. PASSED mkdir -p /var/repository PASSED sudo apt-ostree repo init \ --feed /var/repository --release bullseye --origin starlingx PASSED sudo apt-ostree repo list --release bullseye Story: 2010867 Task: 48556 Change-Id: Iaa5dbf6233b0175eefec67ba666c66b47bc01e66 Signed-off-by: Charles Short <charles.short@windriver.com>
This commit is contained in:
parent
dce174f305
commit
70fdb9cd9b
@ -13,7 +13,7 @@ from apt_ostree.cmd.repo.list import show
|
||||
from apt_ostree.cmd.repo.remove import remove
|
||||
|
||||
|
||||
@click.group(help="Commands to create/manage Debian package repository")
|
||||
@click.group(help="Create/manage Debian package repository.")
|
||||
@click.pass_context
|
||||
def repo(ctxt):
|
||||
pass
|
||||
|
@ -4,7 +4,7 @@ Copyright (c) 2023 Wind River Systems, Inc.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
"""
|
||||
import shutil
|
||||
import errno
|
||||
import sys
|
||||
|
||||
import click
|
||||
@ -13,7 +13,6 @@ from apt_ostree.cmd.options import feed_option
|
||||
from apt_ostree.cmd.options import packages_option
|
||||
from apt_ostree.cmd.options import release_option
|
||||
from apt_ostree.cmd import pass_state_context
|
||||
from apt_ostree.log import complete_step
|
||||
from apt_ostree.repo import Repo
|
||||
|
||||
|
||||
@ -23,10 +22,13 @@ from apt_ostree.repo import Repo
|
||||
@release_option
|
||||
@packages_option
|
||||
def add(state, feed, release, packages):
|
||||
if shutil.which("reprepro") is None:
|
||||
click.secho("reprepro was not found in your $PATH")
|
||||
sys.exit(0)
|
||||
|
||||
with complete_step(
|
||||
f"Adding packages to {state.feed}"):
|
||||
try:
|
||||
Repo(state).add()
|
||||
except KeyboardInterrupt:
|
||||
click.secho("\n" + ("Exiting at your request."))
|
||||
sys.exit(130)
|
||||
except BrokenPipeError:
|
||||
sys.exit()
|
||||
except OSError as error:
|
||||
if error.errno == errno.ENOSPC:
|
||||
sys.exit("errror - No space left on device.")
|
||||
|
@ -5,7 +5,7 @@ SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
"""
|
||||
|
||||
import shutil
|
||||
import errno
|
||||
import sys
|
||||
|
||||
import click
|
||||
@ -15,7 +15,6 @@ from apt_ostree.cmd.options import feed_option
|
||||
from apt_ostree.cmd.options import origin_option
|
||||
from apt_ostree.cmd.options import release_option
|
||||
from apt_ostree.cmd import pass_state_context
|
||||
from apt_ostree.log import complete_step
|
||||
from apt_ostree.repo import Repo
|
||||
|
||||
|
||||
@ -25,10 +24,13 @@ from apt_ostree.repo import Repo
|
||||
@release_option
|
||||
@origin_option
|
||||
def init(state, feed, release, origin):
|
||||
if shutil.which("reprepro") is None:
|
||||
click.secho("reprepro was not found in your $PATH")
|
||||
sys.exit(0)
|
||||
|
||||
with complete_step(
|
||||
f"Creating Debian package repository in {state.feed}."):
|
||||
try:
|
||||
Repo(state).init()
|
||||
except KeyboardInterrupt:
|
||||
click.secho("\n" + ("Exiting at your request."))
|
||||
sys.exit(130)
|
||||
except BrokenPipeError:
|
||||
sys.exit()
|
||||
except OSError as error:
|
||||
if error.errno == errno.ENOSPC:
|
||||
sys.exit("errror - No space left on device.")
|
||||
|
@ -5,7 +5,7 @@ SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
"""
|
||||
|
||||
import shutil
|
||||
import errno
|
||||
import sys
|
||||
|
||||
import click
|
||||
@ -21,8 +21,13 @@ from apt_ostree.repo import Repo
|
||||
@feed_option
|
||||
@release_option
|
||||
def show(state, feed, release):
|
||||
if shutil.which("reprepro") is None:
|
||||
click.secho("reprepro was not found in your $PATH")
|
||||
sys.exit(0)
|
||||
|
||||
Repo(state).show()
|
||||
try:
|
||||
Repo(state).show()
|
||||
except KeyboardInterrupt:
|
||||
click.secho("\n" + ("Exiting at your request."))
|
||||
sys.exit(130)
|
||||
except BrokenPipeError:
|
||||
sys.exit()
|
||||
except OSError as error:
|
||||
if error.errno == errno.ENOSPC:
|
||||
sys.exit("errror - No space left on device.")
|
||||
|
@ -5,7 +5,7 @@ SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
"""
|
||||
|
||||
import shutil
|
||||
import errno
|
||||
import sys
|
||||
|
||||
import click
|
||||
@ -14,20 +14,22 @@ from apt_ostree.cmd.options import feed_option
|
||||
from apt_ostree.cmd.options import packages_option
|
||||
from apt_ostree.cmd.options import release_option
|
||||
from apt_ostree.cmd import pass_state_context
|
||||
from apt_ostree.log import complete_step
|
||||
from apt_ostree.repo import Repo
|
||||
|
||||
|
||||
@click.command(help="Remove debian package(s) from reposiotry")
|
||||
@click.command(help="Remove debian package(s) from reposiotry.")
|
||||
@pass_state_context
|
||||
@feed_option
|
||||
@release_option
|
||||
@packages_option
|
||||
def remove(state, feed, release, packages):
|
||||
if shutil.which("reprepro") is None:
|
||||
click.secho("reprepro was not found in your $PATH")
|
||||
sys.exit(0)
|
||||
|
||||
with complete_step(
|
||||
f"Removing packages from {state.feed}"):
|
||||
try:
|
||||
Repo(state).remove()
|
||||
except KeyboardInterrupt:
|
||||
click.secho("\n" + ("Exiting at your request."))
|
||||
sys.exit(130)
|
||||
except BrokenPipeError:
|
||||
sys.exit()
|
||||
except OSError as error:
|
||||
if error.errno == errno.ENOSPC:
|
||||
sys.exit("errror - No space left on device.")
|
||||
|
@ -60,7 +60,7 @@ class Repo:
|
||||
)
|
||||
|
||||
def add(self):
|
||||
"""Add Debian package(s) to repository"""
|
||||
"""Add Debian package(s) to repository."""
|
||||
for pkg in self.state.packages:
|
||||
log_step(f"Adding {pkg}")
|
||||
r = run_command(
|
||||
@ -102,6 +102,7 @@ class Repo:
|
||||
self.console.print(table)
|
||||
|
||||
def remove(self):
|
||||
"""Remove a Debian package from an archive."""
|
||||
for pkg in self.state.packages:
|
||||
log_step(f"Removing {pkg}")
|
||||
r = run_command(
|
||||
|
Loading…
x
Reference in New Issue
Block a user