8 グローバル変数: Var_Global_[変数名]
9 グローバル関数: Function_Global_[関数名]
11 [ Function_Global_Main_ask_questions内で使用する関数のみ ]
12 グローバル関数: Function_Global_Ask_[設定される変数名]
15 オプション用: Var_Global_Wizard_Option_
16 実行環境設定: Var_Global_Wizard_Env_
19 ローカル変数: Var_Local_[変数名]
20 ローカル関数: Var_Local_[関数名]
24 Var_Global_Wizard_Option_nobuild=false
25 script_path="$( cd -P "$( dirname "$(readlink -f "$0")" )" && cd .. && pwd )"
26 Var_Global_Wizard_Env_script_path="${script_path}"
28 Var_Global_Wizard_Env_machine_arch="$(uname -m)"
29 Var_Global_Wizard_Option_build_arch="${Var_Global_Wizard_Env_machine_arch}"
31 # Pacman configuration file used only when checking packages.
32 Var_Global_Wizard_Env_pacman_conf="${Var_Global_Wizard_Env_script_path}/system/pacman-${Var_Global_Wizard_Env_machine_arch}.conf"
35 #Var_Global_Wizard_Option_language="jp"
36 Var_Global_Wizard_Option_language="en"
37 Var_Global_Wizard_Option_skip_language=false
44 if [[ ${Var_Global_Wizard_Option_language} = "jp" ]]; then
51 if [[ ${Var_Global_Wizard_Option_language} = "jp" ]]; then
58 if [[ ${Var_Global_Wizard_Option_language} = "jp" ]]; then
66 # Usage: getclm <number>
67 # 標準入力から値を受けとり、引数で指定された列を抽出します。
68 getclm() { cut -d " " -f "${1}"; }
71 Function_Global_help() {
72 echo "usage ${0} [options]"
74 echo " General options:"
75 echo " -a Specify the architecture"
78 echo " -n Enable simulation mode"
79 echo " -x Enable bash debug"
80 echo " -h This help message"
83 while getopts 'a:xnjeh' arg; do
86 Var_Global_Wizard_Option_nobuild=true
88 "シミュレーションモードを有効化しました" "Enabled simulation mode"
92 msg "デバッグモードを有効化しました" "Debug mode enabled"
95 Var_Global_Wizard_Option_language="en"
97 Var_Global_Wizard_Option_skip_language=true
100 Var_Global_Wizard_Option_language="jp"
102 Var_Global_Wizard_Option_skip_language=true
109 Var_Global_Wizard_Option_build_arch="${OPTARG}"
118 Function_Global_Main_wizard_language () {
119 if [[ "${Var_Global_Wizard_Option_skip_language}" = false ]]; then
120 echo "このウィザードでどちらの言語を使用しますか?"
121 echo "この質問はウィザード内のみの設定であり、ビルドへの影響はありません。"
123 echo "Which language would you like to use for this wizard?"
124 echo "This question is a wizard-only setting and does not affect the build."
127 echo "2: 日本語 Japanese"
130 read -r Var_Global_Wizard_Option_language
132 case "${Var_Global_Wizard_Option_language}" in
133 "1" | "英語" | "English" | "en") Var_Global_Wizard_Option_language=en ;;
134 "2" | "日本語" | "Japanese" | "ja") Var_Global_Wizard_Option_language=jp ;;
135 * ) Function_Global_Main_wizard_language ;;
140 Function_Global_Main_check_required_files () {
141 local Var_Local_file_list Var_Local_file Var_Local_error=false
142 Var_Local_file_list=(
151 "tools/alteriso-info.sh"
155 "system/kernel-x86_64"
157 "system/locale-x86_64"
158 "system/pacman-i686.conf"
159 "system/pacman-x86_64.conf"
163 for Var_Local_file in "${Var_Local_file_list[@]}"; do
164 if [[ ! -f "${Var_Global_Wizard_Env_script_path}/${Var_Local_file}" ]]; then
165 msg_error "${Var_Local_file}が見つかりませんでした。" "${Var_Local_file} was not found."
169 if [[ "${Var_Local_error}" = true ]]; then
174 Function_Global_Main_load_default_config () {
175 source "${Var_Global_Wizard_Env_script_path}/default.conf"
178 Function_Global_Main_check_yay(){
179 if ! pacman -Qq yay > /dev/null 2>&1; then
180 msg_error "yayが見つかりませんでした" "yay was not found."
185 Function_Global_Main_install_dependent_packages () {
186 #local pkg installed_pkg installed_ver check_pkg
187 local Function_Local_checkpkg Var_Local_package
189 msg "データベースの更新をしています..." "Updating package datebase..."
190 sudo pacman -Sy --config "${Var_Global_Wizard_Env_pacman_conf}"
192 Function_Local_checkpkg () {
193 local Var_Local_package Var_Local_installed_package Var_Local_installed_version
194 readarray -t Var_Local_installed_package < <(pacman -Q | getclm 1)
195 readarray -t Var_Local_installed_version < <(pacman -Q | getclm 2)
196 for Var_Local_package in $(seq 0 $(( "${#Var_Local_installed_package[@]}" - 1 ))); do
197 if [[ "${Var_Local_installed_package[${Var_Local_package}]}" = "${1}" ]]; then
198 [[ "${Var_Local_installed_version[${Var_Local_package}]}" = "$(pacman -Sp --print-format '%v' --config "${Var_Global_Wizard_Env_pacman_conf}" "${1}")" ]] && return 0 || return 1
204 for Var_Local_package in "${dependence[@]}"; do
205 msg "依存パッケージ ${Var_Local_package} を確認しています..." "Checking dependency package ${Var_Local_package} ..."
206 if Function_Local_checkpkg "${Var_Local_package}"; then
207 Var_Global_missing_packages+=("${Var_Local_package}")
210 if [[ -n "${Var_Global_missing_packages[*]}" ]]; then
211 yay -S --needed --config "${Var_Global_Wizard_Env_pacman_conf}" "${Var_Global_missing_packages[@]}"
216 Function_Global_Main_guide_to_the_web () {
217 if [[ "${Var_Global_Wizard_Option_language}" = "jp" ]]; then
218 msg "wizard.sh ではビルドオプションの生成以外にもパッケージのインストールやキーリングのインストールなど様々なことを行います。"
219 msg "もし既に環境が構築されておりそれらの操作が必要ない場合は、以下のサイトによるジェネレータも使用することができます。"
220 msg "http://hayao.fascode.net/alteriso-options-generator/"
225 Function_Global_Main_run_keyring.sh () {
226 local Var_Local_input_yes_or_no
227 msg_n "Alter Linuxの鍵を追加しますか?(y/N): " "Are you sure you want to add the Alter Linux key? (y/N):"
228 read -r Var_Local_input_yes_or_no
229 if ${Var_Global_Wizard_Option_nobuild}; then
231 "${Var_Local_input_yes_or_no}が入力されました。シミュレーションモードが有効化されているためスキップします。" \
232 "You have entered ${Var_Local_input_yes_or_no}. Simulation mode is enabled and will be skipped."
234 case "${Var_Local_input_yes_or_no}" in
235 "y" | "Y" | "yes" | "Yes" | "YES" ) sudo "${Var_Global_Wizard_Env_script_path}/keyring.sh" --alter-add ;;
236 "n" | "N" | "no" | "No" | "NO" ) return 0 ;;
237 * ) Function_Global_Main_run_keyring.sh ;;
243 Function_Global_Main_remove_dependent_packages () {
244 if [[ -n "${Var_Global_missing_packages[*]}" ]]; then
245 sudo pacman -Rsn --config "${Var_Global_Wizard_Env_pacman_conf}" "${Var_Global_missing_packages[@]}"
250 Function_Global_Ask_build_arch() {
253 "Please select an architecture."
255 "注意:このウィザードでは正式にサポートされているアーキテクチャのみ選択可能です。" \
256 "Note: Only officially supported architectures can be selected in this wizard."
258 echo "1: x86_64 (64bit)"
259 echo "2: i686 (32bit)"
262 read -r Var_Global_Wizard_Option_build_arch
264 case "${Var_Global_Wizard_Option_build_arch}" in
265 1 | "x86_64" ) Var_Global_Wizard_Option_build_arch="x86_64" ;;
266 2 | "i686" ) Var_Global_Wizard_Option_build_arch="i686" ;;
267 * ) Function_Global_Ask_build_arch ;;
272 Function_Global_Ask_plymouth () {
273 local Var_Local_input_yes_or_no
274 msg_n "Plymouthを有効化しますか?[no](y/N) : " "Do you want to enable Plymouth? [no] (y/N) : "
275 read -r Var_Local_input_yes_or_no
276 case "${Var_Local_input_yes_or_no}" in
277 "y" | "Y" | "yes" | "Yes" | "YES" ) Var_Global_Build_plymouth=true ;;
278 "n" | "N" | "no" | "No" | "NO" ) Var_Global_Build_plymouth=false ;;
279 * ) Function_Global_Ask_plymouth ;;
283 # この関数はAlterISO2以前を想定したものです。現在はコメントアウトされて実行されません。
284 Function_Global_Ask_japanese () {
285 local Var_Local_input_yes_or_no
286 msg_n "日本語を有効化しますか?[no](y/N) : " "Do you want to activate Japanese? [no] (y/N) : "
287 read -r Var_Local_input_yes_or_no
288 case "${Var_Local_input_yes_or_no}" in
289 "y" | "Y" | "yes" | "Yes" | "YES" ) Var_Global_Build_japanese=true ;;
290 "n" | "N" | "no" | "No" | "NO" ) Var_Global_Build_japanese=false ;;
291 * ) Function_Global_Ask_japanese ;;
295 # Function_Global_Ask_japaneseの代わりにFunction_Global_Ask_localeを使用して下さい。
296 Function_Global_Ask_locale() {
298 "ビルドする言語を以下の番号から選択して下さい " \
299 "Please select the language to build from the following numbers"
301 local Var_Local_locale_list Var_Local_locale Var_Local_count=1 Var_Local_input_locale
302 #Var_Local_locale_list=($("${Var_Global_Wizard_Env_script_path}/tools/locale.sh" -a "${Var_Global_Wizard_Option_build_arch}" show))
303 readarray -t Var_Local_locale_list < <("${Var_Global_Wizard_Env_script_path}/tools/locale.sh" -a "${Var_Global_Wizard_Option_build_arch}" show)
304 for Var_Local_locale in "${Var_Local_locale_list[@]}"; do
306 local locale_name locale_gen_name locale_version locale_time locale_fullname
307 eval "$("${Var_Global_Wizard_Env_script_path}/tools/locale.sh" -a "${Var_Global_Wizard_Option_build_arch}" get "${Var_Local_locale}" )"
308 echo -n "$(printf %02d "${Var_Local_count}") ${locale_name}"
309 for Var_Local_int in $( seq 1 $(( 10 - ${#kernel} )) ); do echo -ne " "; done
310 echo -ne "(${locale_fullname})\n"
312 Var_Local_count=$(( Var_Local_count + 1 ))
315 read -r Var_Local_input_locale
318 expr "${Var_Local_input_locale}" + 1 >/dev/null 2>&1
319 if [[ "${?}" -lt 2 ]]; then
322 Var_Local_input_locale=$(( Var_Local_input_locale - 1 ))
323 if [[ -z "${Var_Local_locale_list[${Var_Local_input_locale}]}" ]]; then
324 Function_Global_Ask_locale
327 Var_Global_Build_locale="${Var_Local_locale_list[${Var_Local_input_locale}]}"
334 if [[ ! $(printf '%s\n' "${Var_Local_locale_list[@]}" | grep -qx "${Var_Local_input_locale}"; echo -n ${?} ) -eq 0 ]]; then
335 Function_Global_Ask_locale
338 Var_Global_Build_locale="${Var_Local_input_locale}"
344 Function_Global_Ask_comp_type () {
345 local Var_Local_input_comp_type
347 "圧縮方式を以下の番号から選択してください " \
348 "Please select the compression method from the following numbers"
350 echo "1: gzip (default)"
357 read -r Var_Local_input_comp_type
358 case "${Var_Local_input_comp_type}" in
359 "1" | "gzip" ) Var_Global_Build_comp_type="gzip" ;;
360 "2" | "lzma" ) Var_Global_Build_comp_type="lzma" ;;
361 "3" | "lzo" ) Var_Global_Build_comp_type="lzo" ;;
362 "4" | "lz4" ) Var_Global_Build_comp_type="lz4" ;;
363 "5" | "xz" ) Var_Global_Build_comp_type="xz" ;;
364 "6" | "zstd" ) Var_Global_Build_comp_type="zstd" ;;
365 * ) Function_Global_Ask_comp_type ;;
371 Function_Global_Ask_comp_option () {
373 local Function_Local_comp_option
374 case "${Var_Global_Build_comp_type}" in
376 Function_Local_comp_option() {
377 local Var_Local_gzip_level Var_Local_gzip_window
378 local Function_Local_gzip_level Function_Local_gzip_window
380 Function_Local_gzip_level () {
381 msg_n "gzipの圧縮レベルを入力してください。 (1~22) : " "Enter the gzip compression level. (1~22) : "
382 read -r Var_Local_gzip_level
383 if ! [[ ${Var_Local_gzip_level} -lt 23 && ${Var_Local_gzip_level} -ge 1 ]]; then
384 Function_Local_gzip_level
388 Function_Local_gzip_window () {
390 "gzipのウィンドウサイズを入力してください。 (1~15) : " \
391 "Please enter the gzip window size. (1~15) : "
393 read -r Var_Local_gzip_window
394 if ! [[ ${Var_Local_gzip_window} -lt 15 && ${Var_Local_gzip_window} -ge 1 ]]; then
395 Function_Local_gzip_window
399 Function_Local_gzip_level
400 Function_Local_gzip_window
401 comp_option="-Xcompression-level ${Var_Local_gzip_level} -Xwindow-size ${Var_Local_gzip_window}"
405 Function_Local_comp_option () {
406 local Var_Local_lz4_high_comp
408 "高圧縮モードを有効化しますか? (y/N) : " \
409 "Do you want to enable high compression mode? (y/N) : "
410 read -r Var_Local_lz4_high_comp
411 case "${Var_Local_lz4_high_comp}" in
412 "y" | "Y" | "yes" | "Yes" | "YES" ) comp_option="-Xhc" ;;
413 "n" | "N" | "no" | "No" | "NO" ) : ;;
414 * ) Function_Local_comp_option ;;
419 Function_Local_comp_option () {
420 local Var_Local_zstd_level
422 "zstdの圧縮レベルを入力してください。 (1~22) : " \
423 "Enter the zstd compression level. (1~22) : "
424 read -r Var_Local_zstd_level
425 if [[ ${Var_Local_zstd_level} -lt 23 && ${Var_Local_zstd_level} -ge 1 ]]; then
426 comp_option="-Xcompression-level ${Var_Local_zstd_level}"
428 Function_Local_comp_option
433 Function_Local_comp_option () {
434 local Function_Local_lzo_algorithm Var_Local_lzo_algorithm
435 Function_Local_lzo_algorithm () {
437 "lzoの圧縮アルゴリズムを以下の番号から選択して下さい" \
438 "Select the lzo compression algorithm from the numbers below"
440 "よく理解していない場合はlzo1x_999を選択して下さい" \
441 "Choose lzo1x_999 if you are not familiar with it"
449 read -r Var_Local_lzo_algorithm
450 case "${Var_Local_lzo_algorithm}" in
452 Var_Local_lzo_algorithm="lzo1x_1"
455 Var_Local_lzo_algorithm="lzo1x_1_11"
458 Var_Local_lzo_algorithm="lzo1x_1_12"
461 Var_Local_lzo_algorithm="lzo1x_1_15"
464 Var_Local_lzo_algorithm="lzo1x_999"
467 Function_Local_lzo_algorithm
472 Function_Local_lzo_algorithm
473 if [[ "${Var_Local_lzo_algorithm}" = "lzo1x_999" ]]; then
474 local Function_Local_lzo_level Var_Local_lzo_level
475 Function_Local_lzo_level () {
476 msg_n "lzoの圧縮レベルを入力してください。 (1~9) : " "Enter the gzip compression level. (1~9) : "
477 read -r Var_Local_lzo_level
478 if ! [[ ${Var_Local_lzo_level} -lt 10 && ${Var_Local_lzo_level} -ge 1 ]]; then
479 Function_Local_lzo_level
483 Function_Local_lzo_level
484 comp_option="-Xalgorithm lzo1x_999 -Xcompression-level ${Var_Local_lzo_level}"
486 comp_option="-Xalgorithm ${Var_Local_lzo_algorithm}"
491 Function_Local_comp_option () {
493 "現在${Var_Global_Build_comp_type}の詳細設定ウィザードがサポートされていません。" \
494 "The ${Var_Global_Build_comp_type} Advanced Wizard is not currently supported."
498 Function_Local_comp_option () {
504 Function_Local_comp_option
508 Function_Global_Ask_username () {
509 msg_n "ユーザー名を入力してください : " "Please enter your username : "
510 read -r Var_Global_Build_username
511 if [[ -z "${Var_Global_Build_username}" ]]; then
512 Function_Global_Ask_username
519 Function_Global_Ask_password () {
520 local Var_Local_password Var_Local_password_confirm
522 msg_n "パスワードを入力してください : " "Please enter your password : "
523 read -r -s Var_Local_password
525 msg_n "もう一度入力して下さい : " "Type it again : "
526 read -r -s Var_Local_password_confirm
527 if [[ ! "${Var_Local_password}" = "${Var_Local_password_confirm}" ]]; then
529 msg_error "同じパスワードが入力されませんでした。" "You did not enter the same password."
530 Function_Global_Ask_password
531 elif [[ -z "${Var_Local_password}" || -z "${Var_Local_password_confirm}" ]]; then
533 msg_error "パスワードを入力してください。" "Please enter your password."
534 Function_Global_Ask_password
536 Var_Global_Build_password="${Var_Local_password}"
542 Function_Global_Ask_kernel () {
544 "使用するカーネルを以下の番号から選択してください" \
545 "Please select the kernel to use from the following numbers"
548 local Var_Local_kernel_list
549 #Var_Local_kernel_list=($("${Var_Global_Wizard_Env_script_path}/tools/kernel.sh" -a "${Var_Global_Wizard_Option_build_arch}" show))
550 readarray -t Var_Local_kernel_list < <("${Var_Global_Wizard_Env_script_path}/tools/kernel.sh" -a "${Var_Global_Wizard_Option_build_arch}" show)
553 local Var_Local_kernel Var_Local_count=1 Var_Local_int
554 for Var_Local_kernel in "${Var_Local_kernel_list[@]}"; do
556 local kernel kernel_filename kernel_mkinitcpio_profile
557 eval "$("${Var_Global_Wizard_Env_script_path}/tools/kernel.sh" -a "${Var_Global_Wizard_Option_build_arch}" get "${Var_Local_kernel}" )"
558 echo -n "$(printf %02d "${Var_Local_count}") ${kernel}"
559 for Var_Local_int in $( seq 1 $(( 19 - ${#kernel} )) ); do echo -ne " "; done
560 echo -ne "(${kernel_filename})\n"
562 Var_Local_count=$(( Var_Local_count + 1 ))
567 local Var_Local_input_kernel
568 read -r Var_Local_input_kernel
573 expr "${Var_Local_input_kernel}" + 1 >/dev/null 2>&1
574 if [[ ${?} -lt 2 ]]; then
577 Var_Local_input_kernel=$(( Var_Local_input_kernel - 1 ))
578 if [[ -z "${Var_Local_kernel_list[${Var_Local_input_kernel}]}" ]]; then
579 Function_Global_Ask_kernel
582 Var_Global_Build_kernel="${Var_Local_kernel_list[${Var_Local_input_kernel}]}"
589 if [[ ! $(printf '%s\n' "${Var_Local_kernel_list[@]}" | grep -qx "${Var_Local_input_kernel}"; echo -n ${?} ) -eq 0 ]]; then
590 Function_Global_Ask_kernel
593 Var_Global_Build_kernel="${Var_Local_input_kernel}"
600 Function_Global_Ask_channel () {
602 local Var_Local_int Var_Local_count=1 Var_Local_channel Var_Local_channel_list Var_Local_description Var_Local_channel_dir Var_Local_index
603 #Var_Local_channel_list=($("${Var_Global_Wizard_Env_script_path}/tools/channel.sh" --nobuiltin show))
604 #Var_Local_channel_dir=($("${Var_Global_Wizard_Env_script_path}/tools/channel.sh" --dirname --nobuiltin show))
606 readarray -t Var_Local_channel_list < <("${Var_Global_Wizard_Env_script_path}/tools/channel.sh" --nobuiltin show)
607 readarray -t Var_Local_channel_dir < <("${Var_Global_Wizard_Env_script_path}/tools/channel.sh" --dirname --nobuiltin show)
609 msg "チャンネルを以下の番号から選択してください。" "Select a channel from the numbers below."
611 for Var_Local_channel in "${Var_Local_channel_list[@]}"; do
612 if [[ -f "${Var_Global_Wizard_Env_script_path}/channels/${Var_Local_channel_dir[$(( Var_Local_count - 1 ))]}/description.txt" ]]; then
613 Var_Local_description=$(cat "${Var_Global_Wizard_Env_script_path}/channels/${Var_Local_channel_dir[$(( Var_Local_count - 1 ))]}/description.txt")
615 if [[ "${Var_Global_Wizard_Option_language}" = "jp" ]]; then
616 Var_Local_description="このチャンネルにはdescription.txtがありません。"
618 Var_Local_description="This channel does not have a description.txt."
621 echo -ne "$(printf %02d "${Var_Local_count}") ${Var_Local_channel}"
622 for Var_Local_int in $( seq 1 $(( 19 - ${#Var_Local_channel} )) ); do echo -ne " "; done
623 echo -ne "${Var_Local_description}\n"
624 Var_Local_count="$(( Var_Local_count + 1 ))"
627 read -r Var_Global_Build_channel
631 expr "${Var_Global_Build_channel}" + 1 >/dev/null 2>&1
632 if (( ${?} == 0 )); then
635 Var_Global_Build_channel=$(( Var_Global_Build_channel - 1))
636 if [[ -z "${Var_Local_channel_list[${Var_Global_Build_channel}]}" ]]; then
637 Function_Global_Ask_channel
640 Var_Global_Build_channel="${Var_Local_channel_list[${Var_Global_Build_channel}]}"
645 if [[ ! $(printf '%s\n' "${Var_Local_channel_list[@]}" | grep -qx "${Var_Global_Build_channel}"; echo -n ${?} ) -eq 0 ]]; then
646 Function_Global_Ask_channel
651 echo "${Var_Global_Build_channel}"
658 Function_Global_Ask_owner () {
659 local Function_Local_check_user
660 Function_Local_check_user () {
661 [[ -z "${1+SET}" ]] && return 2
662 getent passwd "${1}" > /dev/null && return 0 || return 1
665 msg_n "イメージファイルの所有者を入力してください。: " "Enter the owner of the image file.: "
666 read -r Var_Global_iso_owner
667 if Function_Local_check_user "${Var_Global_iso_owner}"; then
669 Function_Global_Ask_owner
671 elif [[ -z "${Var_Global_iso_owner}" ]]; then
672 echo "ユーザー名を入力して下さい。"
673 Function_Global_Ask_owner
675 elif [[ "${Var_Global_iso_owner}" = "root" ]]; then
683 Function_Global_Ask_out_dir () {
684 msg "イメージファイルの作成先を入力して下さい。" "Enter the destination to create the image file."
685 msg "デフォルトは ${Var_Global_Wizard_Env_script_path}/out です。" "The default is ${Var_Global_Wizard_Env_script_path}/out."
688 if [[ -z "${out_dir}" ]]; then
689 out_dir="${Var_Global_Wizard_Env_script_path}/out"
691 if [[ ! -d "${out_dir}" ]]; then
693 "存在しているディレクトリを指定して下さい。" \
694 "Please specify the existing directory."
695 Function_Global_Ask_out_dir
697 elif [[ "${out_dir}" = "/" ]] || [[ "${out_dir}" = "/home" ]]; then
699 "そのディレクトリは使用できません。" \
700 "The directory is unavailable."
701 Function_Global_Ask_out_dir
707 Function_Global_Ask_tarball () {
708 local Var_Local_input_yes_or_no
709 msg_n "tarballをビルドしますか?[no](y/N) : " "Build a tarball? [no] (y/N) : "
710 read -r Var_Local_input_yes_or_no
711 case "${Var_Local_input_yes_or_no}" in
712 "y" | "Y" | "yes" | "Yes" | "YES" ) Var_Global_Build_tarball=true ;;
713 "n" | "N" | "no" | "No" | "NO" ) Var_Global_Build_tarball=false ;;
714 * ) Function_Global_Ask_tarball ;;
719 # 最終的なbuild.shのオプションを生成
720 Function_Global_Main_create_argument () {
721 Var_Global_Build_argument=("--noconfirm" "-a" "${Var_Global_Wizard_Option_build_arch}")
723 #[[ "${Var_Global_Build_japanese}" = true ]] && Var_Global_Build_argument+=("-l ja")
724 [[ -n "${Var_Global_Build_locale}" ]] && Var_Global_Build_argument+=("-l" "${Var_Global_Build_locale}")
725 [[ "${Var_Global_Build_plymouth}" = true ]] && Var_Global_Build_argument+=("-b")
726 [[ -n "${Var_Global_Build_comp_type}" ]] && Var_Global_Build_argument+=("-c ${Var_Global_Build_comp_type}")
727 [[ -n "${comp_option}" ]] && Var_Global_Build_argument+=("-t" "${comp_option}")
728 [[ -n "${Var_Global_Build_kernel}" ]] && Var_Global_Build_argument+=("-k" "${Var_Global_Build_kernel}")
729 [[ -n "${Var_Global_Build_username}" ]] && Var_Global_Build_argument+=("-u" "${Var_Global_Build_username}")
730 [[ -n "${Var_Global_Build_password}" ]] && Var_Global_Build_argument+=("-p" "${Var_Global_Build_password}")
731 [[ -n "${out_dir}" ]] && Var_Global_Build_argument+=("-o" "${out_dir}")
732 [[ "${Var_Global_Build_tarball}" = true ]] && Var_Global_Build_argument+=("--tarball")
733 #argument="--noconfirm -a ${Var_Global_Wizard_Option_build_arch} ${argument} ${Var_Global_Build_channel}"
734 Var_Global_Build_argument+=("${Var_Global_Build_channel}")
739 Function_Global_Ask_Confirm () {
740 msg "以下の設定でビルドを開始します。" "Start the build with the following settings."
742 #[[ -n "${Var_Global_Build_japanese}" ]] && echo " Japanese : ${Var_Global_Build_japanese}"
743 [[ -n "${Var_Global_Build_locale}" ]] && echo " Language : ${Var_Global_Build_locale}"
744 [[ -n "${Var_Global_Wizard_Option_build_arch}" ]] && echo " Architecture : ${Var_Global_Wizard_Option_build_arch}"
745 [[ -n "${Var_Global_Build_plymouth}" ]] && echo " Plymouth : ${Var_Global_Build_plymouth}"
746 [[ -n "${Var_Global_Build_kernel}" ]] && echo " kernel : ${Var_Global_Build_kernel}"
747 [[ -n "${Var_Global_Build_comp_type}" ]] && echo " Compression method : ${Var_Global_Build_comp_type}"
748 [[ -n "${comp_option}" ]] && echo "Compression options : ${comp_option}"
749 [[ -n "${Var_Global_Build_username}" ]] && echo " Username : ${Var_Global_Build_username}"
750 [[ -n "${Var_Global_Build_password}" ]] && echo " Password : ${Var_Global_Build_password}"
751 [[ -n "${Var_Global_Build_channel}" ]] && echo " Channel : ${Var_Global_Build_channel}"
754 "この設定で続行します。よろしいですか? (y/N) : " \
755 "Continue with this setting. Is it OK? (y/N) : "
756 local Var_Local_input_yes_or_no
757 read -r Var_Local_input_yes_or_no
758 case "${Var_Local_input_yes_or_no}" in
759 "y" | "Y" | "yes" | "Yes" | "YES" ) : ;;
760 "n" | "N" | "no" | "No" | "NO" ) exit 0 ;;
761 * ) Function_Global_Ask_Confirm ;;
765 Function_Global_Main_run_build.sh () {
766 if [[ "${Var_Global_Wizard_Option_nobuild}" = true ]]; then
769 # build.shの引数を表示(デバッグ用)
772 work_dir="${Var_Global_Wizard_Env_script_path}/work"
773 sudo bash "${Var_Global_Wizard_Env_script_path}/build.sh" "${Var_Global_Build_argument[@]}"
779 Function_Global_Main_run_clean.sh() {
780 sudo "${Var_Global_Wizard_Env_script_path}/tools/clean.sh -w ${work_dir}"
784 Function_Global_Main_set_iso_permission() {
785 if [[ -n "${Var_Global_iso_owner}" ]]; then
786 chown -R "${Var_Global_iso_owner}" "${out_dir}"
787 chmod -R 750 "${out_dir}"
792 Function_Global_Main_ask_questions () {
793 Function_Global_Ask_build_arch
794 Function_Global_Ask_plymouth
795 Function_Global_Ask_kernel
796 Function_Global_Ask_comp_type
797 Function_Global_Ask_comp_option
798 Function_Global_Ask_username
799 Function_Global_Ask_password
800 # Function_Global_Ask_japanese この関数はAlterISO2以前を想定されたものです。
801 Function_Global_Ask_locale
802 Function_Global_Ask_channel
803 Function_Global_Ask_tarball
805 # これらのディレクトリやファイルの所有権変更は現在無効化されています
806 # Function_Global_Ask_owner
807 # Function_Global_Ask_out_dir
809 Function_Global_Ask_Confirm
812 Function_Global_Prebuild() {
813 Function_Global_Main_wizard_language
814 Function_Global_Main_check_required_files
815 #Function_Global_Main_check_yay
816 Function_Global_Main_load_default_config
817 Function_Global_Main_install_dependent_packages
818 Function_Global_Main_guide_to_the_web
819 Function_Global_Main_run_keyring.sh
820 Function_Global_Main_ask_questions
821 Function_Global_Main_create_argument
824 Function_Global_Build() {
825 Function_Global_Main_run_build.sh
828 Function_Global_PostBuild() {
829 Function_Global_Main_remove_dependent_packages
830 Function_Global_Main_run_clean.sh
831 Function_Global_Main_set_iso_permission
834 Function_Global_Run() {
835 Function_Global_Prebuild
836 Function_Global_Build
837 Function_Global_PostBuild