forked from artix/artools
		
	Compare commits
	
		
			13 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 4d3a993a72 | ||
|   | a52bdc9799 | ||
|   | b62e90f778 | ||
|   | 5d2fda793d | ||
|   | 550663cfd1 | ||
|   | 6c117fb97d | ||
|   | 7e6d832314 | ||
|   | 6fc7b124fc | ||
|   | a011005901 | ||
|   | 5da4fea263 | ||
|   | e1b8a0493b | ||
|   | 8fe1e82226 | ||
|   | aa8725518b | 
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,5 +1,7 @@ | ||||
| Version=0.7 | ||||
|  | ||||
| Chroot_version=0.7 | ||||
|  | ||||
| PREFIX = /usr/local | ||||
| SYSCONFDIR = /etc | ||||
|  | ||||
| @@ -97,7 +99,8 @@ all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO) | ||||
| edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \ | ||||
| 	-e "s|@sysconfdir[@]|$(DESTDIR)$(SYSCONFDIR)/artools|g" \ | ||||
| 	-e "s|@libdir[@]|$(DESTDIR)$(PREFIX)/lib/artools|g" \ | ||||
| 	-e "s|@version@|${Version}|" | ||||
| 	-e "s|@version@|${Version}|" \ | ||||
| 	-e "s|@chroot_version@|${Chroot_version}|" | ||||
|  | ||||
| %: %.in Makefile | ||||
| 	@echo "GEN $@" | ||||
|   | ||||
| @@ -19,42 +19,17 @@ DATADIR='@datadir@' | ||||
| import ${LIBDIR}/util.sh | ||||
| import ${LIBDIR}/util-pkg.sh | ||||
|  | ||||
| pull_tree(){ | ||||
|     local branch="master" tree="$1" | ||||
|     local local_head=$(get_local_head "$branch") | ||||
|     local remote_head=$(get_remote_head "$branch") | ||||
|     local timer=$(get_timer) | ||||
|     msg "Checking [%s] ..." "$tree" | ||||
|     msg2 "local: %s" "${local_head}" | ||||
|     msg2 "remote: %s" "${remote_head}" | ||||
|     if [[ "${local_head}" == "${remote_head}" ]]; then | ||||
|         info "nothing to do" | ||||
|     else | ||||
|         info "needs pull" | ||||
|         git pull origin $branch | ||||
|     fi | ||||
|     msg "Done [%s]" "$tree" | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" | ||||
| } | ||||
|  | ||||
| clone_tree(){ | ||||
|     local timer=$(get_timer) tree="$1" host_tree="$2" | ||||
|     msg "Preparing [%s] ..." "$tree" | ||||
|     info "clone" | ||||
|     git clone $host_tree.git | ||||
|     msg "Done [%s]" "$tree" | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" | ||||
| } | ||||
|  | ||||
| pull_tree_arch(){ | ||||
|     cd ${tree_dir_arch} | ||||
|     for tree in packages community;do | ||||
|         if [[ -d ${tree} ]];then | ||||
|             cd ${tree} | ||||
|                 pull_tree "${tree}" | ||||
|                 msg "Checking (%s)" "${tree}" | ||||
|                 pull_tree | ||||
|             cd .. | ||||
|         else | ||||
|             clone_tree "${tree}" "${host_tree_arch}/${tree}" | ||||
|             msg "Cloning (%s) ..." "$tree" | ||||
|             clone_tree "${host_tree_arch}/${tree}" | ||||
|         fi | ||||
|     done | ||||
| } | ||||
| @@ -65,10 +40,12 @@ pull_tree_artix(){ | ||||
|         if [[ -d ${tree} ]];then | ||||
|             cd ${tree} | ||||
|                 git config --bool pull.rebase true | ||||
|                 pull_tree "${tree}" | ||||
|                 msg "Checking (%s)" "${tree}" | ||||
|                 pull_tree | ||||
|             cd .. | ||||
|         else | ||||
|             clone_tree "${tree}" "${host_tree_artix}/${tree}" | ||||
|             msg "Cloning (%s) ..." "$tree" | ||||
|             clone_tree "${host_tree_artix}/${tree}" | ||||
|         fi | ||||
|     done | ||||
| } | ||||
|   | ||||
| @@ -11,6 +11,8 @@ | ||||
|  | ||||
| version=@version@ | ||||
|  | ||||
| chroot_version=@chroot_version@ | ||||
|  | ||||
| LIBDIR='@libdir@' | ||||
|  | ||||
| [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | ||||
| @@ -92,6 +94,7 @@ copy_hostconf () { | ||||
|  | ||||
| chroot_extra_mount() { | ||||
|     chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B | ||||
|     chroot_mount "/etc/hosts" "$1/etc/hosts" -B | ||||
|     chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B | ||||
|     chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B | ||||
|  | ||||
| @@ -113,8 +116,8 @@ umask 0022 | ||||
| # Sanity check | ||||
| if [[ ! -f "$working_dir/.artools" ]]; then | ||||
|     die "'%s' does not appear to be an artix chroot." "$working_dir" | ||||
| elif [[ $(cat "$working_dir/.artools") != $version ]]; then | ||||
|     die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$version" | ||||
| elif [[ $(cat "$working_dir/.artools") != $chroot_version ]]; then | ||||
|     die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$chroot_version" | ||||
| fi | ||||
|  | ||||
| chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}" | ||||
|   | ||||
							
								
								
									
										117
									
								
								bin/commitpkg.in
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								bin/commitpkg.in
									
									
									
									
									
								
							| @@ -17,59 +17,85 @@ DATADIR='@datadir@' | ||||
|  | ||||
| [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | ||||
| import ${LIBDIR}/util.sh | ||||
| import ${LIBDIR}/util-pkg.sh | ||||
|  | ||||
| commit_pkg(){ | ||||
|     cd ${tree_dir_artix}/${git_tree}/${package} | ||||
|     source trunk/PKGBUILD | ||||
|     local ver=$(get_full_version ${package}) | ||||
|     if ${remove};then | ||||
|         local action='remove' | ||||
|         local pkg=${package}-$ver | ||||
|         if [[ "${source_repo}" == 'trunk' ]];then | ||||
|             pkg=${package} | ||||
|             info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}" | ||||
|             git rm -r trunk | ||||
|     local git_tree=$(find_tree "${tree_dir_artix}" "${package}") | ||||
|     if [[ -n ${git_tree} ]];then | ||||
|         cd ${tree_dir_artix}/${git_tree} | ||||
|  | ||||
|         msg "Checking (%s)" "${git_tree}" | ||||
|         pull_tree | ||||
|  | ||||
|         cd ${package} | ||||
|  | ||||
|         source trunk/PKGBUILD | ||||
|         [[ $arch == 'any' ]] && CARCH=any | ||||
|         local ver=$(get_full_version "${package}") | ||||
|  | ||||
|         if ${remove};then | ||||
|             local action='remove' | ||||
|             if [[ "${source_repo}" == 'trunk' ]];then | ||||
|                 local pkg=${package} | ||||
|                 git rm -r trunk | ||||
|             else | ||||
|                 local pkg=${package}-$ver | ||||
|                 git rm -r repos/${source_repo}-$CARCH | ||||
|             fi | ||||
|             msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}" | ||||
|             git commit -m "[${source_repo}] '$pkg' ${action}" | ||||
|             ${push} && push_tree | ||||
|         else | ||||
|             info "[%s] '%s' %s" "${source_repo}" "$pkg" "${action}" | ||||
|             git rm -r repos/${source_repo}-$CARCH | ||||
|             local action='modify' | ||||
|             msg "Action: [%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}" | ||||
|             git add . | ||||
|             git commit -m "[${source_repo}] '${package}-$ver' ${action}" | ||||
|             ${push} && push_tree | ||||
|         fi | ||||
|         git commit -m "[${source_repo}] '$pkg' ${action}" | ||||
|         ${push} && git push origin master | ||||
|     else | ||||
|         local action='modify' | ||||
|         info "[%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}" | ||||
|         git add . | ||||
|         git commit -m "[${source_repo}] '${package}-$ver' ${action}" | ||||
|         ${push} && git push origin master | ||||
|         error "Package '%s' does not exist!" "${package}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| release_pkg(){ | ||||
|     if [[ -d ${tree_dir_artix}/${git_tree}/${package} ]];then | ||||
|         cd ${tree_dir_artix}/${git_tree}/${package} | ||||
| symlink_commit_pkg(){ | ||||
|     local git_tree=$(find_tree "${tree_dir_artix}" "${package}") | ||||
|     if [[ -n ${git_tree} ]];then | ||||
|         cd ${tree_dir_artix}/${git_tree} | ||||
|  | ||||
|         msg "Checking (%s)" "${git_tree}" | ||||
|         pull_tree | ||||
|  | ||||
|         cd ${package} | ||||
|  | ||||
|         source trunk/PKGBUILD | ||||
|         [[ $arch == 'any' ]] && CARCH=any | ||||
|         if [[ ${source_repo} != 'trunk' ]];then | ||||
|             cd repos | ||||
|             dest=${target_repo}-$CARCH | ||||
|             action='move' | ||||
|             [[ -d $dest ]] && git rm -r $dest | ||||
|             git mv ${source_repo}-$CARCH $dest | ||||
|             cd .. | ||||
|         else | ||||
|             dest=${target_repo}-$CARCH | ||||
|             action='add' | ||||
|         local ver=$(get_full_version "${package}") | ||||
|  | ||||
|         if [[ ${source_repo} == 'trunk' ]];then | ||||
|             local action='add' | ||||
|             local dest=${target_repo}-$CARCH | ||||
|  | ||||
|             [[ ! -d repos ]] && mkdir repos | ||||
|             cd repos | ||||
|             [[ -d $dest ]] && git rm -r $dest | ||||
|                 [[ -d $dest ]] && git rm -r $dest | ||||
|             cd .. | ||||
|             cp -r trunk repos/$dest | ||||
|         else | ||||
|             local action='move' | ||||
|             local dest=${target_repo}-$CARCH | ||||
|  | ||||
|             cd repos | ||||
|                 [[ -d $dest ]] && git rm -r $dest | ||||
|                 git mv ${source_repo}-$CARCH $dest | ||||
|             cd .. | ||||
|         fi | ||||
|         local ver=$(get_full_version ${package}) | ||||
|         info "[%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}" | ||||
|  | ||||
|         msg "Action: [%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}" | ||||
|         git add . | ||||
|         git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}" | ||||
|         ${push} && git push origin master | ||||
|         ${push} && push_tree | ||||
|     else | ||||
|         error "Package '%s' does not exist!" "${package}" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| @@ -78,7 +104,6 @@ display_settings(){ | ||||
|     show_config | ||||
|  | ||||
|     msg "OPTIONS:" | ||||
|     msg2 "git_tree: %s" "${git_tree}" | ||||
|     msg2 "source_repo: %s" "${source_repo}" | ||||
|     msg2 "target_repo: %s" "${target_repo}" | ||||
|     msg2 "package: %s" "${package}" | ||||
| @@ -100,20 +125,14 @@ remove=false | ||||
| push=false | ||||
| pretend=false | ||||
|  | ||||
| git_tree='packages' | ||||
|  | ||||
| cmd=${0##*/} | ||||
| target_repo=${cmd%pkg} | ||||
|  | ||||
| case ${target_repo} in | ||||
|     community*|multilib*) git_tree='packages-galaxy' ;; | ||||
| esac | ||||
|  | ||||
| usage() { | ||||
|     echo "Usage: ${0##*/} [options]" | ||||
|     echo "    -s <name>          Source repository [default:${source_repo}]" | ||||
|     echo '    -p <pkg>           Package name' | ||||
|     echo '    -r                 Delete from repo' | ||||
|     echo '    -r                 Delete from repo (commitpkg only)' | ||||
|     echo '    -u                 Push' | ||||
|     echo '    -q                 Query settings and pretend' | ||||
|     echo '    -h                 This help' | ||||
| @@ -142,8 +161,12 @@ shift $(($OPTIND - 1)) | ||||
|  | ||||
| ${pretend} && display_settings && exit 1 | ||||
|  | ||||
| if [[ "${cmd}" == 'commitpkg' ]];then | ||||
|     commit_pkg | ||||
| if $(is_valid_repo "${source_repo}");then | ||||
|     if [[ "${cmd}" == 'commitpkg' ]];then | ||||
|         commit_pkg | ||||
|     else | ||||
|         symlink_commit_pkg | ||||
|     fi | ||||
| else | ||||
|     release_pkg | ||||
|     error "source repository '%s' is not valid!" "${source_repo}" | ||||
| fi | ||||
|   | ||||
| @@ -29,7 +29,8 @@ del_from_repo(){ | ||||
|         if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then | ||||
|             info "pkgfile: %s" "${pkgfile##*/}" | ||||
|             repo-remove -R $repo_path/$repo.db.tar.xz $name | ||||
|             [[ -f $repo_path/${pkgfile##*/}{,.sig} ]] && rm -v $repo_path/${pkgfile##*/}{,.sig} | ||||
|             [[ -e $repo_path/${pkgfile##*/} ]] && rm -v $repo_path/${pkgfile##*/} | ||||
|             [[ -e $repo_path/${pkgfile##*/}.sig ]] && rm -v $repo_path/${pkgfile##*/}.sig | ||||
|         fi | ||||
|     done | ||||
| } | ||||
|   | ||||
| @@ -11,6 +11,8 @@ | ||||
|  | ||||
| version=@version@ | ||||
|  | ||||
| chroot_version=@chroot_version@ | ||||
|  | ||||
| LIBDIR='@libdir@' | ||||
|  | ||||
| [[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh | ||||
| @@ -104,7 +106,7 @@ done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$') | ||||
| env -i "${_env[@]}" \ | ||||
| basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages' | ||||
|  | ||||
| echo "$version" > "$working_dir/.artools" | ||||
| echo "$chroot_version" > "$working_dir/.artools" | ||||
|  | ||||
| default_locale "set" "$working_dir" | ||||
|  | ||||
|   | ||||
| @@ -18,3 +18,8 @@ extra/python-packaging | ||||
| extra/python-pyparsing | ||||
| extra/ttf-liberation | ||||
| extra/appstream-glib | ||||
| extra/libxkbui | ||||
| extra/libxkbfile | ||||
| extra/libunicodenames | ||||
| extra/mpg123 | ||||
| extra/opencl-headers | ||||
|   | ||||
| @@ -28,18 +28,11 @@ qt5-remoteobjects | ||||
| qt5-webchannel | ||||
| qt5-websockets | ||||
| qt5-webglplugin | ||||
|  | ||||
|  | ||||
| qt5-tools | ||||
| qt5-translations | ||||
| qt5-doc | ||||
| qt5-examples | ||||
|  | ||||
| qt5-webengine | ||||
| qt5-webview | ||||
|  | ||||
| qt5-webkit | ||||
|  | ||||
| python2-pyqt5 | ||||
| python-pyqt5 | ||||
| pyqt5-common | ||||
| pyqt5 | ||||
|   | ||||
| @@ -91,14 +91,14 @@ msg_row_notify(){ | ||||
|     printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2 | ||||
| } | ||||
|  | ||||
| msg_row_downgrade(){ | ||||
| msg_row(){ | ||||
|     local mesg=$1; shift | ||||
|     printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2 | ||||
|     printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 | ||||
| } | ||||
|  | ||||
| msg_row_upgrade(){ | ||||
|     local mesg=$1; shift | ||||
|     printf "${RED}${BOLD} ${mesg} ${ALL_OFF}\n" "$@" >&2 | ||||
|     printf "${RED}${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2 | ||||
| } | ||||
|  | ||||
| import(){ | ||||
|   | ||||
| @@ -71,6 +71,36 @@ patch_pkg(){ | ||||
|     esac | ||||
| } | ||||
|  | ||||
| find_tree(){ | ||||
|     local tree="$1" pkg="$2" | ||||
|     local result=$(find $tree -mindepth 2 -maxdepth 2 -type d -name "$pkg") | ||||
|     result=${result%/*} | ||||
|     echo ${result##*/} | ||||
| } | ||||
|  | ||||
| clone_tree(){ | ||||
|     local timer=$(get_timer) host_tree="$1" | ||||
|     git clone $host_tree.git | ||||
|     show_elapsed_time "${FUNCNAME}" "${timer}" | ||||
| } | ||||
|  | ||||
| pull_tree(){ | ||||
|     local branch="master" | ||||
|     local local_head=$(get_local_head "$branch") | ||||
|     local remote_head=$(get_remote_head "$branch") | ||||
|     if [[ "${local_head}" == "${remote_head}" ]]; then | ||||
|         msg2 "remote changes: no" | ||||
|     else | ||||
|         msg2 "remote changes: yes" | ||||
|         git pull origin "$branch" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| push_tree(){ | ||||
|     local branch="master" | ||||
|     git push origin "$branch" | ||||
| } | ||||
|  | ||||
| get_import_path(){ | ||||
|     local tree="$1" import_path= | ||||
|     case $tree in | ||||
| @@ -80,6 +110,14 @@ get_import_path(){ | ||||
|     echo $import_path | ||||
| } | ||||
|  | ||||
| is_valid_repo(){ | ||||
|     local src="$1" | ||||
|     case $src in | ||||
|         core|extra|community|multilib|testing|staging|community-testing|community-staging|multilib-testing|multilib-staging|trunk) return 0 ;; | ||||
|         *) return 1 ;; | ||||
|     esac | ||||
| } | ||||
|  | ||||
| find_repo(){ | ||||
|     local pkg="$1" repo= | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user