![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/usr/bin/X11/ |
Upload File : |
#!/bin/bash - # p2v/virt-p2v-make-kickstart. Generated from virt-p2v-make-kickstart.in by configure. # virt-p2v-make-kickstart # Copyright (C) 2014-2019 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. unset CDPATH program="virt-p2v-make-kickstart" version="1.40.2" # Parse the command line arguments. shortopts=o:vV longopts=help,inject-ssh-identity:,install:,long-options,output:,proxy:,short-options,verbose,version TEMP=`getopt \ -o "$shortopts" \ --long "$longopts" \ -n $program -- "$@"` if [ $? != 0 ]; then echo "$program: problem parsing the command line arguments" exit 1 fi eval set -- "$TEMP" usage () { echo "Usage:" echo " $program [--options] [-o p2v.ks] [--proxy=http://...] repo [repo...]" echo echo "Read $program(1) man page for more information." exit $1 } extra_packages= output=p2v.ks proxy= ssh_identity= verbose= while true; do case "$1" in --inject-ssh-identity) ssh_identity="$2" shift 2;; --install) extra_packages="${extra_packages:+${extra_packages},}$2" shift 2;; -o|--output) output="$2" shift 2;; --proxy) proxy="--proxy=$2" shift 2;; --repo) repo="$2" shift 2;; -v|--verbose) set +x verbose=1 shift;; # help etc. --help) usage 0;; -V|--version) echo "$program $version" exit 0;; --short-options) echo -n "$shortopts" | /bin/sed -e 's/://g' -e 's/\(.\)/-\1\n/g' exit 0;; --long-options) echo "$longopts" | /bin/sed -e 's/,/\n/g' -e 's/:$//mg' -e 's/\(.*\)/--\1/mg' | grep -v -E -- "--(short|long)-options" exit 0;; --) shift break;; *) echo "internal error ($1)" exit 1;; esac done if [ $# -lt 1 ]; then echo "$program: Missing repo(s). See $program(1)." exit 1 fi set -e if [ -n "$VIRT_P2V_DATA_DIR" ]; then datadir="$VIRT_P2V_DATA_DIR" libdir="$VIRT_P2V_DATA_DIR" else datadir="${prefix}/share/virt-p2v" libdir="${prefix}/lib/x86_64-linux-gnu/virt-p2v" fi # Base64-encode the files that we need to embed into the kickstart. base64_issue="$(base64 $datadir/issue)" base64_launch_virt_p2v="$(base64 $datadir/launch-virt-p2v)" base64_p2v_service="$(base64 $datadir/p2v.service)" if [ -n "$ssh_identity" ]; then base64_ssh_identity="$(base64 $ssh_identity)" else base64_ssh_identity= fi # virt-p2v binary is too large unless we strip it and recompress it. tmpfile="$(mktemp -u)" xzcat $libdir/virt-p2v.xz > $tmpfile md5sum_virt_p2v="$(md5sum $tmpfile | gawk '{print $1}')" strip --strip-all $tmpfile gzip -9 $tmpfile base64_virt_p2v="$(base64 $tmpfile.gz)" rm $tmpfile.gz # Repositories. repos= i=0 for repo in "$@"; do case "$repo" in fedora) repos="$repos repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-\$releasever\\\\&arch=\$basearch $proxy " ;; rawhide) repos="$repos repo --name=rawhide --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide\\\\&arch=\$basearch $proxy " ;; koji) repos="$repos repo --name=koji --baseurl=http://koji.fedoraproject.org/repos/rawhide/latest/\$basearch/ $proxy " ;; rhel-5.*) minor=$( echo "$repo" | sed 's/rhel-[0-9]*\.\([0-9]*\)/\1/' ) arch=`uname -m | sed 's/i[3456]86/i386/g'` baseurl=http://download.devel.redhat.com/released/RHEL-5-Server/U$minor/$arch/os/Server/ # Neither $basearch nor --proxy work in RHEL 5 kickstarts. repos="$repos repo --name=rhel5_${minor}_server --baseurl=$baseurl " ;; rhel-6.*) minor=$( echo "$repo" | sed 's/rhel-[0-9]*\.\([0-9]*\)/\1/' ) baseurl=http://download.devel.redhat.com/released/RHEL-6/6.$minor # '$basearch' cannot be used in kickstart, so: arch=`uname -m` repos="$repos repo --name=rhel6_${minor}_server --baseurl=$baseurl/Server/$arch/os $proxy repo --name=rhel6_${minor}_server_optional --baseurl=$baseurl/Server/optional/$arch/os $proxy " ;; rhel-7.*) minor=$( echo "$repo" | sed 's/rhel-[0-9]*\.\([0-9]*\)/\1/' ) baseurl=http://download.devel.redhat.com/released/RHEL-7/7.$minor # '$basearch' cannot be used in kickstart, so: arch=`uname -m` repos="$repos repo --name=rhel7_${minor}_server --baseurl=$baseurl/Server/$arch/os $proxy repo --name=rhel7_${minor}_server_optional --baseurl=$baseurl/Server-optional/$arch/os $proxy " ;; *) # A custom repo is just a URL. ((i++)) ||: repos="$repos repo --name=custom$i --baseurl=$repo $proxy " ;; esac done # Dependencies. Since kickstart is Red Hat-specific, only include # dependencies.redhat here. depsfile="$datadir/dependencies.redhat" if [ ! -f "$depsfile" ]; then echo "$0: cannot find dependencies file ($depsfile)" exit 1 fi dependencies= while read line; do if [ -n "$line" ]; then if [ -z "$dependencies" ]; then dependencies="$line" else dependencies="$dependencies $line" fi fi done < $depsfile # Now generate the final kickstart, substituting as necessary. # AWK FTW! gawk \ -v "base64_issue=$base64_issue" \ -v "base64_launch_virt_p2v=$base64_launch_virt_p2v" \ -v "base64_p2v_service=$base64_p2v_service" \ -v "base64_ssh_identity=$base64_ssh_identity" \ -v "base64_virt_p2v=$base64_virt_p2v" \ -v "dependencies=$dependencies" \ -v "extra_packages=$extra_packages" \ -v "md5sum_virt_p2v=$md5sum_virt_p2v" \ -v "repos=$repos" \ '{ gsub (/__PACKAGE_NAME__/, "libguestfs"); gsub (/__PACKAGE_VERSION__/, "1.40.2"); gsub (/__PACKAGE_VERSION_FULL__/, "1.40.2"); gsub (/__BASE64_ISSUE__/, base64_issue); gsub (/__BASE64_LAUNCH_VIRT_P2V__/, base64_launch_virt_p2v); gsub (/__BASE64_P2V_SERVICE__/, base64_p2v_service); gsub (/__BASE64_SSH_IDENTITY__/, base64_ssh_identity); gsub (/__BASE64_VIRT_P2V__/, base64_virt_p2v); gsub (/__DEPENDENCIES__/, dependencies); gsub (/__EXTRA_PACKAGES__/, gensub (/,/, "\n", "g", extra_packages)); gsub (/__MD5SUM_VIRT_P2V__/, md5sum_virt_p2v); gsub (/__REPOS__/, repos); print; }' \ $datadir/p2v.ks.in > $output-t mv $output-t $output echo "Kickstart file written to $output"