From 119d8750a093664a029b286b46b2edcd5466b6c8 Mon Sep 17 00:00:00 2001 From: pvincent Date: Mon, 24 Aug 2026 18:12:55 +0400 Subject: [PATCH] better miaou-create --- tools/miaou-create | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/tools/miaou-create b/tools/miaou-create index d3da6ff..e22b1a9 100755 --- a/tools/miaou-create +++ b/tools/miaou-create @@ -78,7 +78,7 @@ function assign_host_zoneinfo { incus exec "${options[@]}" "$target" -- bash <<-EOF ln -fs "$host_zoneinfo" /etc/localtime -dpkg-reconfigure -f noninteractive tzdata +dpkg-reconfigure -f noninteractive tzdata 2>/dev/null EOF } @@ -113,17 +113,25 @@ EOF echo "template refreshed at: $image_date" } -function build_template_from_scratch { - build_sandbox_project - echo "building template from scratch..." - incus --project "$PROJECT_SANDBOX" launch "$MIAOU_IMAGE" "$TEMPLATE_SANDBOX" - incus --project "$PROJECT_SANDBOX" file delete "$TEMPLATE_SANDBOX"/etc/apt/sources.list - incus --project "$PROJECT_SANDBOX" file push --uid 0 --gid 0 --mode 644 --create-dirs /etc/apt/sources.list.d/debian.sources "$TEMPLATE_SANDBOX"/etc/apt/sources.list.d/debian.sources - cat <&2 && - exit 30 || - true + if [[ $(incus project get-current) == "$PROJECT_SANDBOX" ]]; then + >&2 echo MIAOU_INCUS_ERROR: actual sandboxing project, please switch back to your 'default' project + builtin exit 30 + fi +} + +function assert_unique_name { + if incus info "$CONTAINER" >/dev/null 2>&1; then + >&2 echo "MIAOU_INCUS_ERROR: a container named <$CONTAINER> already exists!" + builtin exit 31 + fi } function create { if [[ "$BARE_MINIMAL" == true ]]; then incus launch "$MIAOU_IMAGE" "$CONTAINER" - command -v ghostty >/dev/null && infocmp_xterm_ghostty "$CONTAINER" - + add_feature_minimal_debian "$CONTAINER" assign_host_zoneinfo "$CONTAINER" else if incus --project "$PROJECT_SANDBOX" info "$TEMPLATE_SANDBOX" | grep '^Status: RUNNING'; then @@ -187,6 +202,7 @@ function create { parse_options "$@" assert_not_sandboxing +assert_unique_name prepare_template_for_quick_creation create echo Success