mirror of
				https://gitlab.archlinux.org/archlinux/devtools.git
				synced 2025-10-31 15:54:43 +01:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			master
			...
			939790367a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 939790367a | ||
|   | f5c8258784 | ||
|   | c169f5c7ab | 
| @@ -8,6 +8,8 @@ DEVTOOLS_INCLUDE_DB_MOVE_SH=1 | ||||
| _DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@} | ||||
| # shellcheck source=src/lib/common.sh | ||||
| source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh | ||||
| # shellcheck source=src/lib/valid-repos.sh | ||||
| source "${_DEVTOOLS_LIBRARY_DIR}"/lib/valid-repos.sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
| @@ -20,6 +22,7 @@ pkgctl_db_move_usage() { | ||||
| 		Move packages between binary repositories. | ||||
|  | ||||
| 		OPTIONS | ||||
| 		    --noconfirm      Bypass any confirmation messages, should only be used with caution | ||||
| 		    -h, --help         Show this help text | ||||
|  | ||||
| 		EXAMPLES | ||||
| @@ -29,9 +32,12 @@ _EOF_ | ||||
| } | ||||
|  | ||||
| pkgctl_db_move() { | ||||
| 	local SOURCE_REPO="" | ||||
| 	local TARGET_REPO="" | ||||
| 	local PKGBASES=() | ||||
| 	if (( $# < 3 )); then | ||||
| 		pkgctl_db_move_usage | ||||
| 		exit 1 | ||||
| 	fi | ||||
|  | ||||
| 	local CONFIRM=1 | ||||
|  | ||||
| 	# option checking | ||||
| 	while (( $# )); do | ||||
| @@ -40,6 +46,10 @@ pkgctl_db_move() { | ||||
| 				pkgctl_db_move_usage | ||||
| 				exit 0 | ||||
| 				;; | ||||
| 			--noconfirm) | ||||
| 				CONFIRM=0 | ||||
| 				shift | ||||
| 				;; | ||||
| 			-*) | ||||
| 				die "invalid argument: %s" "$1" | ||||
| 				;; | ||||
| @@ -49,16 +59,35 @@ pkgctl_db_move() { | ||||
| 		esac | ||||
| 	done | ||||
|  | ||||
| 	if (( $# < 3 )); then | ||||
| 		pkgctl_db_move_usage | ||||
| 		exit 1 | ||||
| 	local source_repo=$1 | ||||
| 	local target_repo=$2 | ||||
| 	shift 2 | ||||
|  | ||||
| 	if ! in_array "${source_repo}" "${DEVTOOLS_VALID_REPOS[@]}"; then | ||||
| 		die "Invalid source repository: %s" "${source_repo}" | ||||
| 	fi | ||||
| 	if ! in_array "${target_repo}" "${DEVTOOLS_VALID_REPOS[@]}"; then | ||||
| 		die "Invalid target repository: %s" "${target_repo}" | ||||
| 	fi | ||||
|  | ||||
| 	SOURCE_REPO=$1 | ||||
| 	TARGET_REPO=$2 | ||||
| 	shift 2 | ||||
| 	PKGBASES+=("$@") | ||||
| 	if (( CONFIRM )); then | ||||
| 		local pkglist | ||||
| 		pkglist=$(printf '%s\n' "$@" | paste -sd ' ') | ||||
| 		read -r -p "Move packages from [${source_repo}] to [${target_repo}]: ${pkglist}? [Y/n] " response | ||||
| 		case ${response} in | ||||
| 			[Yy][Ee][Ss]|[Yy]|'') | ||||
| 				: # continue | ||||
| 				;; | ||||
| 			*) | ||||
| 				exit 0 | ||||
| 				;; | ||||
| 		esac | ||||
| 	fi | ||||
|  | ||||
| 	# shellcheck disable=SC2029 | ||||
| 	ssh "${PACKAGING_REPO_RELEASE_HOST}" db-move "${SOURCE_REPO}" "${TARGET_REPO}" "${PKGBASES[@]}" | ||||
| 	local pkgbase | ||||
| 	for pkgbase in "$@"; do | ||||
| 		msg "Moving [%s] from [%s] to [%s]" "${pkgbase}" "${source_repo}" "${target_repo}" | ||||
| 		# shellcheck disable=SC2046 | ||||
| 		db-move "${source_repo}" "${target_repo}" $(pacman -Sql "${source_repo}" | grep "^${pkgbase}" || echo "${pkgbase}") | ||||
| 	done | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user