From 4e83a31847d8eed953e3ac285f5d624648176016 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 01:14:44 +0900 Subject: [PATCH 01/20] add version cmd --- kardinal-cli/cmd/root.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/kardinal-cli/cmd/root.go b/kardinal-cli/cmd/root.go index df52470..00f432d 100644 --- a/kardinal-cli/cmd/root.go +++ b/kardinal-cli/cmd/root.go @@ -73,6 +73,7 @@ const ( appLabelKey = "app" versionLabelKey = "version" portCheckTimeout = 5 * time.Second + rawVersionUrl = "https://raw.githubusercontent.com/kurtosis-tech/kardinal/refs/heads/main/version.txt" ) var ( @@ -622,6 +623,24 @@ var tenantShowCmd = &cobra.Command{ }, } +var versionCmd = &cobra.Command{ + Use: "version", + Short: "Show version of Kardinal CLI running", + Args: cobra.ExactArgs(0), + Run: func(cmd *cobra.Command, args []string) { + resp, err := http.Get(rawVersionUrl) + if err != nil { + log.Fatalf("Error getting or creating user tenant UUID: %v", err) + } + defer resp.Body.Close() + version, err := io.ReadAll(resp.Body) + if err != nil { + log.Fatalf("Error reading response body: %v", err) + } + fmt.Printf("%s\n", string(version)) + }, +} + func init() { devMode = false if os.Getenv("KARDINAL_CLI_DEV_MODE") == "TRUE" { @@ -637,6 +656,7 @@ func init() { rootCmd.AddCommand(reportInstall) rootCmd.AddCommand(topologyCmd) rootCmd.AddCommand(tenantCmd) + rootCmd.AddCommand(versionCmd) flowCmd.AddCommand(listCmd, createCmd, deleteCmd, telepresenceInterceptCmd) managerCmd.AddCommand(deployManagerCmd, removeManagerCmd) From f8d4f9ab338fdd58ccdff10ad3836338267bd58a Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 01:16:16 +0900 Subject: [PATCH 02/20] update err msg --- kardinal-cli/cmd/root.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kardinal-cli/cmd/root.go b/kardinal-cli/cmd/root.go index 00f432d..bfe0b3a 100644 --- a/kardinal-cli/cmd/root.go +++ b/kardinal-cli/cmd/root.go @@ -630,7 +630,7 @@ var versionCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { resp, err := http.Get(rawVersionUrl) if err != nil { - log.Fatalf("Error getting or creating user tenant UUID: %v", err) + log.Fatalf("Error making request for version id: %v", err) } defer resp.Body.Close() version, err := io.ReadAll(resp.Body) From 9799a4687f362719bb1ca699b2e9ec71ac7f8470 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 01:19:10 +0900 Subject: [PATCH 03/20] update nix flakes --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 02d8866..f85bcc0 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1722589758, - "narHash": "sha256-sbbA8b6Q2vB/t/r1znHawoXLysCyD4L/6n6/RykiSnA=", + "lastModified": 1728509152, + "narHash": "sha256-tQo1rg3TlwgyI8eHnLvZSlQx9d/o2Rb4oF16TfaTOw0=", "owner": "nix-community", "repo": "gomod2nix", - "rev": "4e08ca09253ef996bd4c03afa383b23e35fe28a1", + "rev": "d5547e530464c562324f171006fc8f639aa01c9f", "type": "github" }, "original": { @@ -43,11 +43,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1726320982, - "narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=", + "lastModified": 1728740863, + "narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49", + "rev": "a3f9ad65a0bf298ed5847629a57808b97e6e8077", "type": "github" }, "original": { From 308b45779921421020b7a6da3e9c59512de5f335 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:25:57 +0900 Subject: [PATCH 04/20] create kardinal version module --- .gitignore | 3 ++ scripts/generate_kardinal_version.sh | 54 ++++++++++++++++++++++++++++ scripts/get-docker-tag.sh | 14 ++++++++ 3 files changed, 71 insertions(+) create mode 100755 scripts/generate_kardinal_version.sh create mode 100755 scripts/get-docker-tag.sh diff --git a/.gitignore b/.gitignore index 63d70b9..04ffb65 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,6 @@ Temporary Items # local build folders istio-1.22.0/ kontrol-service/Run_kontrol_service + +# Ignoring the file that gets generated with the repo's version +/kardinal_version/kardinal_version.go \ No newline at end of file diff --git a/scripts/generate_kardinal_version.sh b/scripts/generate_kardinal_version.sh new file mode 100755 index 0000000..ceae7a8 --- /dev/null +++ b/scripts/generate_kardinal_version.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +set -euo pipefail # Bash "strict mode" +script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +root_dirpath="$(dirname "${script_dirpath}")" + +# ================================================================================================== +# Constants +# ================================================================================================== + +KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" +KARDINAL_VERSION_GO_FILE="kardinal_version.go" +KARDINAL_VERSION_PACKAGE_NAME="github.com/kurtosis-tech/kardinal/kardinal_version" +KARDINAL_VERSION_PACKAGE_GOSUM_PATH="go.sum" + + +# ================================================================================================== +# Arg Parsing & Validation +# ================================================================================================== +show_helptext_and_exit() { + echo "Usage: $(basename "${0}") new_version" + echo "" + echo " new_version The version to be generate the version constants with, otherwise uses 'get-docker-tag.sh'" + echo "" + exit 1 +} + + +# ================================================================================================== +# Main Logic +# ================================================================================================== +new_version="${1:-}" + +if [ -z "${new_version}" ]; then + if ! cd "${root_dirpath}"; then + echo "Error: Couldn't cd to the root of this repo, '${root_dirpath}', which is required to get the Git tag" >&2 + show_helptext_and_exit + fi + if ! new_version="$(./scripts/get-docker-tag.sh)"; then + echo "Error: No new version provided and couldn't generate one" >&2 + show_helptext_and_exit + fi +fi + +kardinal_version_go_file_abs_path="${root_dirpath}/${KARDINAL_VERSION_PACKAGE_DIR}/${KARDINAL_VERSION_GO_FILE}" +cat << EOF > "${kardinal_version_go_file_abs_path}" +package ${KARDINAL_VERSION_PACKAGE_DIR} + +const ( + // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! + KardinalVersion = "${new_version}" + // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! +) +EOF \ No newline at end of file diff --git a/scripts/get-docker-tag.sh b/scripts/get-docker-tag.sh new file mode 100755 index 0000000..d2c5b65 --- /dev/null +++ b/scripts/get-docker-tag.sh @@ -0,0 +1,14 @@ +set -euo pipefail # Bash "strict mode" + +# ================================================================================================== +# Main Logic +# ================================================================================================== + +if ! git status > /dev/null; then + echo "Error: This command was run from outside a git repo" >&2 + exit 1 +fi + +commit_sha="$(git rev-parse --short=6 HEAD)" +suffix="$(git diff --quiet || echo '-dirty')" +echo "${commit_sha}${suffix}" \ No newline at end of file From e39d419d8361a079fc5fb1c536667bfd68321363 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:27:19 +0900 Subject: [PATCH 05/20] use kurtosis version pkg to print version --- kardinal-cli/cmd/root.go | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/kardinal-cli/cmd/root.go b/kardinal-cli/cmd/root.go index bfe0b3a..ea5ac22 100644 --- a/kardinal-cli/cmd/root.go +++ b/kardinal-cli/cmd/root.go @@ -32,6 +32,7 @@ import ( "kardinal.cli/kontrol" "kardinal.cli/tenant" + "github.com/kurtosis-tech/kardinal/kardinal_version" api "github.com/kurtosis-tech/kardinal/libs/cli-kontrol-api/api/golang/client" api_types "github.com/kurtosis-tech/kardinal/libs/cli-kontrol-api/api/golang/types" appv1 "k8s.io/api/apps/v1" @@ -73,7 +74,6 @@ const ( appLabelKey = "app" versionLabelKey = "version" portCheckTimeout = 5 * time.Second - rawVersionUrl = "https://raw.githubusercontent.com/kurtosis-tech/kardinal/refs/heads/main/version.txt" ) var ( @@ -628,16 +628,7 @@ var versionCmd = &cobra.Command{ Short: "Show version of Kardinal CLI running", Args: cobra.ExactArgs(0), Run: func(cmd *cobra.Command, args []string) { - resp, err := http.Get(rawVersionUrl) - if err != nil { - log.Fatalf("Error making request for version id: %v", err) - } - defer resp.Body.Close() - version, err := io.ReadAll(resp.Body) - if err != nil { - log.Fatalf("Error reading response body: %v", err) - } - fmt.Printf("%s\n", string(version)) + fmt.Printf("%s\n", kardinal_version.KardinalVersion) }, } From 34e47c0b887315ba1235d71c5a56513e0a384723 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:29:01 +0900 Subject: [PATCH 06/20] add kardinal version to go workspace --- go.work | 1 + kardinal-cli/go.mod | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/go.work b/go.work index a887a5e..3cac1a5 100644 --- a/go.work +++ b/go.work @@ -6,4 +6,5 @@ use ( ./libs/cli-kontrol-api ./kardinal-cli ./sidecars/redis-overlay-service + ./kardinal_version ) diff --git a/kardinal-cli/go.mod b/kardinal-cli/go.mod index 2302180..110685a 100644 --- a/kardinal-cli/go.mod +++ b/kardinal-cli/go.mod @@ -1,14 +1,16 @@ module kardinal.cli -go 1.22.0 +go 1.22.3 -toolchain go1.22.3 - -replace github.com/kurtosis-tech/kardinal/libs/cli-kontrol-api => ../libs/cli-kontrol-api +replace ( + github.com/kurtosis-tech/kardinal/kardinal_version => ../kardinal_version + github.com/kurtosis-tech/kardinal/libs/cli-kontrol-api => ../libs/cli-kontrol-api +) require ( github.com/adrg/xdg v0.4.0 github.com/google/uuid v1.6.0 + github.com/kurtosis-tech/kardinal/kardinal_version v0.0.0-00010101000000-000000000000 github.com/kurtosis-tech/stacktrace v0.0.0-20211028211901-1c67a77b5409 github.com/samber/lo v1.46.0 github.com/segmentio/analytics-go/v3 v3.3.0 From 46cdbdec36dee33549c811fbbc836b19fcdcdbd2 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:44:10 +0900 Subject: [PATCH 07/20] add generate version to nix flake and shell --- flake.nix | 6 ++++++ kardinal_version/go.mod | 3 +++ shell.nix | 4 ++++ 3 files changed, 13 insertions(+) create mode 100644 kardinal_version/go.mod diff --git a/flake.nix b/flake.nix index f13ac34..2bf9147 100644 --- a/flake.nix +++ b/flake.nix @@ -110,6 +110,12 @@ packages.go-tidy-all = pkgs.callPackage ./scripts/go-tidy-all.nix { inherit pkgs; }; + packages.get-docker-tag = pkgs.callPackage ./scripts/get-docker-tag.nix { + inherit pkgs; + }; + packages.generate-kardinal-version = pkgs.callPackage ./scripts/generate_kardinal_version.nix { + inherit pkgs; + }; containers = let os = "linux"; diff --git a/kardinal_version/go.mod b/kardinal_version/go.mod new file mode 100644 index 0000000..93704b0 --- /dev/null +++ b/kardinal_version/go.mod @@ -0,0 +1,3 @@ +module github.com/kurtosis-tech/kardinal/kardinal_version + +go 1.22.3 diff --git a/shell.nix b/shell.nix index b784398..4375137 100644 --- a/shell.nix +++ b/shell.nix @@ -12,6 +12,8 @@ ''; go-tidy-all = import ./scripts/go-tidy-all.nix {inherit pkgs;}; + get-docker-tag = import ./scripts/get-docker-tag.nix {inherit pkgs;}; + generate-kurtosis-version = import ./scripts/generate_kurtosis_version.nix {inherit pkgs;}; manager_shell = pkgs.callPackage ./kardinal-manager/shell.nix {inherit pkgs;}; cli_shell = pkgs.callPackage ./kardinal-cli/shell.nix {inherit pkgs;}; @@ -25,6 +27,8 @@ buildInputs = [ kardinal go-tidy-all + get-docker-tag + generate-kurtosis-version kubectl kustomize kubernetes-helm From 83f45f303f060bb4495fc0007b5682cd1538b440 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:53:15 +0900 Subject: [PATCH 08/20] add nix files for generating kardinal version --- scripts/generate_kardinal_version.nix | 49 +++++++++++++++++++++++++++ scripts/get-docker-tag.nix | 18 ++++++++++ 2 files changed, 67 insertions(+) create mode 100644 scripts/generate_kardinal_version.nix create mode 100644 scripts/get-docker-tag.nix diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix new file mode 100644 index 0000000..483f3cf --- /dev/null +++ b/scripts/generate_kardinal_version.nix @@ -0,0 +1,49 @@ +{ pkgs, ... }: +pkgs.writeShellApplication { + name = "generate-kardinal-version"; + runtimeInputs = with pkgs; [ git ]; + + text = '' + set -euo pipefail + script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + root_dirpath="$(dirname "${script_dirpath}")" + + KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" + KARDINAL_VERSION_GO_FILE="kardinal_version.go" + KARDINAL_VERSION_PACKAGE_NAME="github.com/kurtosis-tech/kardinal/kardinal_version" + KARDINAL_VERSION_PACKAGE_GOSUM_PATH="go.sum" + + show_helptext_and_exit() { + echo "Usage: $(basename "$0") new_version" + echo "" + echo " new_version The version to generate the version constants with, otherwise uses 'get-docker-tag.sh'" + echo "" + exit 1 + } + + new_version="${1:-}" + + if [ -z "${new_version}" ]; then + if ! cd "${root_dirpath}"; then + echo "Error: Couldn't cd to the root of this repo, '${root_dirpath}', which is required to get the Git tag" >&2 + show_helptext_and_exit + fi + if ! new_version="$(./scripts/get-docker-tag.sh)"; then + echo "Error: No new version provided and couldn't generate one" >&2 + show_helptext_and_exit + fi + fi + + kardinal_version_go_file_abs_path="${root_dirpath}/${KARDINAL_VERSION_PACKAGE_DIR}/${KARDINAL_VERSION_GO_FILE}" + + cat << EOF > "${kardinal_version_go_file_abs_path}" +package ${KARDINAL_VERSION_PACKAGE_DIR} + +const ( + // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! + KardinalVersion = "${new_version}" + // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! +) +EOF + ''; +} diff --git a/scripts/get-docker-tag.nix b/scripts/get-docker-tag.nix new file mode 100644 index 0000000..6e1d16f --- /dev/null +++ b/scripts/get-docker-tag.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: +pkgs.writeShellApplication { + name = "get-docker-tag"; + runtimeInputs = with pkgs; [ git ]; + + text = '' + set -euo pipefail + + if ! git status > /dev/null; then + echo "Error: This command was run from outside a git repo" >&2 + exit 1 + fi + + commit_sha="$(git rev-parse --short=6 HEAD)" + suffix="$(git diff --quiet || echo '-dirty')" + echo "${commit_sha}${suffix}" + ''; +} \ No newline at end of file From a8676956a5f8e772e818c0cac0ac35fb61eb6799 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:55:19 +0900 Subject: [PATCH 09/20] fix get docker tag --- scripts/get-docker-tag.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/get-docker-tag.nix b/scripts/get-docker-tag.nix index 6e1d16f..c538467 100644 --- a/scripts/get-docker-tag.nix +++ b/scripts/get-docker-tag.nix @@ -13,6 +13,6 @@ pkgs.writeShellApplication { commit_sha="$(git rev-parse --short=6 HEAD)" suffix="$(git diff --quiet || echo '-dirty')" - echo "${commit_sha}${suffix}" + echo "$commit_sha$suffix" ''; } \ No newline at end of file From b26cfddd1f6b6716ceeeb5d816e3735737fd1e8f Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 12:59:40 +0900 Subject: [PATCH 10/20] fix nix scripts --- scripts/generate_kardinal_version.nix | 12 ++++++------ shell.nix | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix index 483f3cf..0bb1a2f 100644 --- a/scripts/generate_kardinal_version.nix +++ b/scripts/generate_kardinal_version.nix @@ -1,7 +1,7 @@ { pkgs, ... }: pkgs.writeShellApplication { name = "generate-kardinal-version"; - runtimeInputs = with pkgs; [ git ]; + runtimeInputs = with pkgs; [ git, get-docker-tag ]; text = '' set -euo pipefail @@ -23,8 +23,8 @@ pkgs.writeShellApplication { new_version="${1:-}" - if [ -z "${new_version}" ]; then - if ! cd "${root_dirpath}"; then + if [ -z "$new_version" ]; then + if ! cd "$root_dirpath"; then echo "Error: Couldn't cd to the root of this repo, '${root_dirpath}', which is required to get the Git tag" >&2 show_helptext_and_exit fi @@ -34,14 +34,14 @@ pkgs.writeShellApplication { fi fi - kardinal_version_go_file_abs_path="${root_dirpath}/${KARDINAL_VERSION_PACKAGE_DIR}/${KARDINAL_VERSION_GO_FILE}" + kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" - cat << EOF > "${kardinal_version_go_file_abs_path}" + cat << EOF > "$kardinal_version_go_file_abs_path" package ${KARDINAL_VERSION_PACKAGE_DIR} const ( // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! - KardinalVersion = "${new_version}" + KardinalVersion = "$new_version" // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! ) EOF diff --git a/shell.nix b/shell.nix index 4375137..2a928f4 100644 --- a/shell.nix +++ b/shell.nix @@ -13,7 +13,7 @@ go-tidy-all = import ./scripts/go-tidy-all.nix {inherit pkgs;}; get-docker-tag = import ./scripts/get-docker-tag.nix {inherit pkgs;}; - generate-kurtosis-version = import ./scripts/generate_kurtosis_version.nix {inherit pkgs;}; + generate-kardinal-version = import ./scripts/generate_kardinal_version.nix {inherit pkgs;}; manager_shell = pkgs.callPackage ./kardinal-manager/shell.nix {inherit pkgs;}; cli_shell = pkgs.callPackage ./kardinal-cli/shell.nix {inherit pkgs;}; @@ -28,7 +28,7 @@ kardinal go-tidy-all get-docker-tag - generate-kurtosis-version + generate-kardinal-version kubectl kustomize kubernetes-helm From ad86c2cbfccdbc391eb93c092a3e1319a025fef9 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 13:02:35 +0900 Subject: [PATCH 11/20] fix nix again --- scripts/generate_kardinal_version.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix index 0bb1a2f..e1e3e66 100644 --- a/scripts/generate_kardinal_version.nix +++ b/scripts/generate_kardinal_version.nix @@ -1,12 +1,12 @@ { pkgs, ... }: pkgs.writeShellApplication { name = "generate-kardinal-version"; - runtimeInputs = with pkgs; [ git, get-docker-tag ]; + runtimeInputs = with pkgs; [ git ]; text = '' set -euo pipefail script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - root_dirpath="$(dirname "${script_dirpath}")" + root_dirpath="$(dirname "$script_dirpath")" KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" KARDINAL_VERSION_GO_FILE="kardinal_version.go" @@ -21,11 +21,11 @@ pkgs.writeShellApplication { exit 1 } - new_version="${1:-}" + new_version="" if [ -z "$new_version" ]; then if ! cd "$root_dirpath"; then - echo "Error: Couldn't cd to the root of this repo, '${root_dirpath}', which is required to get the Git tag" >&2 + echo "Error: Couldn't cd to the root of this repo, '$root_dirpath', which is required to get the Git tag" >&2 show_helptext_and_exit fi if ! new_version="$(./scripts/get-docker-tag.sh)"; then @@ -37,7 +37,7 @@ pkgs.writeShellApplication { kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" cat << EOF > "$kardinal_version_go_file_abs_path" -package ${KARDINAL_VERSION_PACKAGE_DIR} +package $KARDINAL_VERSION_PACKAGE_DIR const ( // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! From c0bcae35c2b69d0026f0f6dc5fd5d1600805248d Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 22:06:58 +0900 Subject: [PATCH 12/20] fix script --- scripts/generate_kardinal_version.nix | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix index e1e3e66..73d0dd8 100644 --- a/scripts/generate_kardinal_version.nix +++ b/scripts/generate_kardinal_version.nix @@ -5,21 +5,20 @@ pkgs.writeShellApplication { text = '' set -euo pipefail - script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + script_dirpath="$(cd "$(dirname "$0")" && pwd)" root_dirpath="$(dirname "$script_dirpath")" KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" KARDINAL_VERSION_GO_FILE="kardinal_version.go" - KARDINAL_VERSION_PACKAGE_NAME="github.com/kurtosis-tech/kardinal/kardinal_version" - KARDINAL_VERSION_PACKAGE_GOSUM_PATH="go.sum" - - show_helptext_and_exit() { - echo "Usage: $(basename "$0") new_version" - echo "" - echo " new_version The version to generate the version constants with, otherwise uses 'get-docker-tag.sh'" - echo "" - exit 1 - } + + if ! git status > /dev/null; then + echo "Error: This command was run from outside a git repo" >&2 + exit 1 + fi + + commit_sha="$(git rev-parse --short=6 HEAD)" + suffix="$(git diff --quiet || echo '-dirty')" + echo "$commit_sha$suffix" new_version="" From 35db686aae4cee05287a948c2705a5c0e9daa1f1 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 22:09:38 +0900 Subject: [PATCH 13/20] adjust flake and shell nix --- flake.nix | 3 --- scripts/generate_kardinal_version.nix | 15 +-------------- shell.nix | 3 --- 3 files changed, 1 insertion(+), 20 deletions(-) diff --git a/flake.nix b/flake.nix index 2bf9147..00933a8 100644 --- a/flake.nix +++ b/flake.nix @@ -110,9 +110,6 @@ packages.go-tidy-all = pkgs.callPackage ./scripts/go-tidy-all.nix { inherit pkgs; }; - packages.get-docker-tag = pkgs.callPackage ./scripts/get-docker-tag.nix { - inherit pkgs; - }; packages.generate-kardinal-version = pkgs.callPackage ./scripts/generate_kardinal_version.nix { inherit pkgs; }; diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix index 73d0dd8..d8980a6 100644 --- a/scripts/generate_kardinal_version.nix +++ b/scripts/generate_kardinal_version.nix @@ -18,20 +18,7 @@ pkgs.writeShellApplication { commit_sha="$(git rev-parse --short=6 HEAD)" suffix="$(git diff --quiet || echo '-dirty')" - echo "$commit_sha$suffix" - - new_version="" - - if [ -z "$new_version" ]; then - if ! cd "$root_dirpath"; then - echo "Error: Couldn't cd to the root of this repo, '$root_dirpath', which is required to get the Git tag" >&2 - show_helptext_and_exit - fi - if ! new_version="$(./scripts/get-docker-tag.sh)"; then - echo "Error: No new version provided and couldn't generate one" >&2 - show_helptext_and_exit - fi - fi + new_version="$commit_sha$suffix" kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" diff --git a/shell.nix b/shell.nix index 2a928f4..db6c855 100644 --- a/shell.nix +++ b/shell.nix @@ -12,9 +12,7 @@ ''; go-tidy-all = import ./scripts/go-tidy-all.nix {inherit pkgs;}; - get-docker-tag = import ./scripts/get-docker-tag.nix {inherit pkgs;}; generate-kardinal-version = import ./scripts/generate_kardinal_version.nix {inherit pkgs;}; - manager_shell = pkgs.callPackage ./kardinal-manager/shell.nix {inherit pkgs;}; cli_shell = pkgs.callPackage ./kardinal-cli/shell.nix {inherit pkgs;}; cli_kontrol_api_shell = pkgs.callPackage ./libs/cli-kontrol-api/shell.nix {inherit pkgs;}; @@ -27,7 +25,6 @@ buildInputs = [ kardinal go-tidy-all - get-docker-tag generate-kardinal-version kubectl kustomize From 21c2390e784bdd463f91d3dba4def227ebfe5264 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 22:15:40 +0900 Subject: [PATCH 14/20] change root path calculation --- scripts/generate_kardinal_version.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix index d8980a6..7fbcd9e 100644 --- a/scripts/generate_kardinal_version.nix +++ b/scripts/generate_kardinal_version.nix @@ -5,8 +5,7 @@ pkgs.writeShellApplication { text = '' set -euo pipefail - script_dirpath="$(cd "$(dirname "$0")" && pwd)" - root_dirpath="$(dirname "$script_dirpath")" + root_dirpath=$(git rev-parse --show-toplevel) KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" KARDINAL_VERSION_GO_FILE="kardinal_version.go" From ed0f61ae2ddb19c53afb9bf3dba9615a1b99b9ce Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 22:30:25 +0900 Subject: [PATCH 15/20] update shell script --- scripts/generate_kardinal_version.nix | 0 scripts/generate_kardinal_version.sh | 58 ++++++++------------------- 2 files changed, 16 insertions(+), 42 deletions(-) mode change 100644 => 100755 scripts/generate_kardinal_version.nix diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix old mode 100644 new mode 100755 diff --git a/scripts/generate_kardinal_version.sh b/scripts/generate_kardinal_version.sh index ceae7a8..28494a7 100755 --- a/scripts/generate_kardinal_version.sh +++ b/scripts/generate_kardinal_version.sh @@ -1,54 +1,28 @@ -#!/usr/bin/env bash +#!/bin/zsh -set -euo pipefail # Bash "strict mode" -script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -root_dirpath="$(dirname "${script_dirpath}")" - -# ================================================================================================== -# Constants -# ================================================================================================== +set -euo pipefail +root_dirpath=$(git rev-parse --show-toplevel) KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" KARDINAL_VERSION_GO_FILE="kardinal_version.go" -KARDINAL_VERSION_PACKAGE_NAME="github.com/kurtosis-tech/kardinal/kardinal_version" -KARDINAL_VERSION_PACKAGE_GOSUM_PATH="go.sum" - - -# ================================================================================================== -# Arg Parsing & Validation -# ================================================================================================== -show_helptext_and_exit() { - echo "Usage: $(basename "${0}") new_version" - echo "" - echo " new_version The version to be generate the version constants with, otherwise uses 'get-docker-tag.sh'" - echo "" - exit 1 -} +if ! git status > /dev/null; then + echo "Error: This command was run from outside a git repo" >&2 + exit 1 +fi -# ================================================================================================== -# Main Logic -# ================================================================================================== -new_version="${1:-}" +commit_sha="$(git rev-parse --short=6 HEAD)" +suffix="$(git diff --quiet || echo '-dirty')" +new_version="$commit_sha$suffix" -if [ -z "${new_version}" ]; then - if ! cd "${root_dirpath}"; then - echo "Error: Couldn't cd to the root of this repo, '${root_dirpath}', which is required to get the Git tag" >&2 - show_helptext_and_exit - fi - if ! new_version="$(./scripts/get-docker-tag.sh)"; then - echo "Error: No new version provided and couldn't generate one" >&2 - show_helptext_and_exit - fi -fi +kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" -kardinal_version_go_file_abs_path="${root_dirpath}/${KARDINAL_VERSION_PACKAGE_DIR}/${KARDINAL_VERSION_GO_FILE}" -cat << EOF > "${kardinal_version_go_file_abs_path}" -package ${KARDINAL_VERSION_PACKAGE_DIR} +cat << EOF > "$kardinal_version_go_file_abs_path" +package $KARDINAL_VERSION_PACKAGE_DIR const ( - // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! - KardinalVersion = "${new_version}" - // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! +// !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! +KardinalVersion = "$new_version" +// !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! ) EOF \ No newline at end of file From fa3b84fc817c4fe5ebce792a72fd9581a6ac3861 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 22:43:51 +0900 Subject: [PATCH 16/20] pull tag --- scripts/generate_kardinal_version.nix | 17 ++++++++++------- scripts/generate_kardinal_version.sh | 19 +++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix index 7fbcd9e..01e6d15 100755 --- a/scripts/generate_kardinal_version.nix +++ b/scripts/generate_kardinal_version.nix @@ -10,15 +10,18 @@ pkgs.writeShellApplication { KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" KARDINAL_VERSION_GO_FILE="kardinal_version.go" - if ! git status > /dev/null; then - echo "Error: This command was run from outside a git repo" >&2 - exit 1 + # Check if the current commit has a tag + if git describe --tags --exact-match > /dev/null 2>&1; then + # If there's an exact match to a tag, use the tag as the version + new_version="$(git describe --tags --exact-match)" + else + # Otherwise, use the short commit SHA + commit_sha="$(git rev-parse --short=6 HEAD)" + # Check if the working directory is dirty + suffix="$(git diff --quiet || echo '-dirty')" + new_version="$commit_sha$suffix" fi - commit_sha="$(git rev-parse --short=6 HEAD)" - suffix="$(git diff --quiet || echo '-dirty')" - new_version="$commit_sha$suffix" - kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" cat << EOF > "$kardinal_version_go_file_abs_path" diff --git a/scripts/generate_kardinal_version.sh b/scripts/generate_kardinal_version.sh index 28494a7..b13f178 100755 --- a/scripts/generate_kardinal_version.sh +++ b/scripts/generate_kardinal_version.sh @@ -6,17 +6,20 @@ root_dirpath=$(git rev-parse --show-toplevel) KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" KARDINAL_VERSION_GO_FILE="kardinal_version.go" -if ! git status > /dev/null; then - echo "Error: This command was run from outside a git repo" >&2 - exit 1 +# Check if the current commit has a tag +if git describe --tags --exact-match > /dev/null 2>&1; then + # If there's an exact match to a tag, use the tag as the version + new_version="$(git describe --tags --exact-match)" +else + # Otherwise, use the short commit SHA + commit_sha="$(git rev-parse --short=6 HEAD)" + # Check if the working directory is dirty + suffix="$(git diff --quiet || echo '-dirty')" + new_version="$commit_sha$suffix" fi - -commit_sha="$(git rev-parse --short=6 HEAD)" -suffix="$(git diff --quiet || echo '-dirty')" -new_version="$commit_sha$suffix" - kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" + cat << EOF > "$kardinal_version_go_file_abs_path" package $KARDINAL_VERSION_PACKAGE_DIR From ad3f485e6e040f318b776de2e7f360523da3c5d2 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 23:14:07 +0900 Subject: [PATCH 17/20] add generate version to kardinal cli --- flake.nix | 17 +++++-- kardinal-cli/default.nix | 51 ++++++++++++++----- .../scripts/generate_kardinal_version.nix | 37 ++++++++++++++ 3 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 kardinal-cli/scripts/generate_kardinal_version.nix diff --git a/flake.nix b/flake.nix index 00933a8..f6068ff 100644 --- a/flake.nix +++ b/flake.nix @@ -87,6 +87,19 @@ }; }; + generateKardinalVersion = pkgs.callPackage ./scripts/generate_kardinal_version.nix { + inherit pkgs; + }; + + runGenerateVersion = pkgs.stdenv.mkDerivation { + name = "run-generate-kardinal-version"; + buildInputs = [ generateKardinalVersion ]; + installPhase = '' + echo "Generating kardinal_version.go..." + ${generateKardinalVersion}/bin/generate-kardinal-version + ''; + }; + systemOutput = rec { devShells.default = pkgs.callPackage ./shell.nix { inherit pkgs; @@ -110,9 +123,7 @@ packages.go-tidy-all = pkgs.callPackage ./scripts/go-tidy-all.nix { inherit pkgs; }; - packages.generate-kardinal-version = pkgs.callPackage ./scripts/generate_kardinal_version.nix { - inherit pkgs; - }; + packages.generate-kardinal-version = runGenerateVersion; containers = let os = "linux"; diff --git a/kardinal-cli/default.nix b/kardinal-cli/default.nix index 5aafcd4..aabe907 100644 --- a/kardinal-cli/default.nix +++ b/kardinal-cli/default.nix @@ -1,20 +1,47 @@ -{ - pkgs, - commit_hash ? "dirty", -}: let +{ pkgs, commit_hash ? "dirty" }: let pname = "kardinal.cli"; + + # Use the generate-kardinal-version Nix expression + generateKardinalVersion = pkgs.callPackage ./scripts/generate_kardinal_version.nix { + inherit pkgs; + }; + ldflags = pkgs.lib.concatStringsSep "\n" [ "-X github.com/kurtosis-tech/kurtosis/kardinal.AppName=${pname}" "-X github.com/kurtosis-tech/kurtosis/kardinal.Commit=${commit_hash}" ]; + in - pkgs.buildGoApplication { - # pname has to match the location (folder) where the main function is or use - # subPackges to specify the file (e.g. subPackages = ["some/folder/main.go"];) - inherit pname ldflags; - name = "${pname}"; - pwd = ./.; + pkgs.stdenv.mkDerivation { + name = pname; src = ./.; - modules = ./gomod2nix.toml; - CGO_ENABLED = 0; + buildInputs = [ generateKardinalVersion ] ++ (with pkgs; [ + go + # Add any other dependencies your build needs + ]); + + phases = [ "buildPhase" "installPhase" ]; # Ensure buildPhase is included + + buildPhase = '' + # Run the version generation before building + ${generateKardinalVersion}/bin/generate-kardinal-version + + # Now build the Go application + ${pkgs.go}/bin/go build -ldflags "${ldflags}" -o ${pname} ./... + ''; + + installPhase = '' + # Install the built binary + mkdir -p $out/bin + mv ${pname} $out/bin/ + ''; + + # This will ensure that the generated file is part of the final output + installCheckPhase = '' + # Check if the version file exists and is generated correctly + if [ ! -f "kardinal_version/kardinal_version.go" ]; then + echo "Version file not generated!" + exit 1 + fi + ''; } diff --git a/kardinal-cli/scripts/generate_kardinal_version.nix b/kardinal-cli/scripts/generate_kardinal_version.nix new file mode 100644 index 0000000..01e6d15 --- /dev/null +++ b/kardinal-cli/scripts/generate_kardinal_version.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: +pkgs.writeShellApplication { + name = "generate-kardinal-version"; + runtimeInputs = with pkgs; [ git ]; + + text = '' + set -euo pipefail + root_dirpath=$(git rev-parse --show-toplevel) + + KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" + KARDINAL_VERSION_GO_FILE="kardinal_version.go" + + # Check if the current commit has a tag + if git describe --tags --exact-match > /dev/null 2>&1; then + # If there's an exact match to a tag, use the tag as the version + new_version="$(git describe --tags --exact-match)" + else + # Otherwise, use the short commit SHA + commit_sha="$(git rev-parse --short=6 HEAD)" + # Check if the working directory is dirty + suffix="$(git diff --quiet || echo '-dirty')" + new_version="$commit_sha$suffix" + fi + + kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" + + cat << EOF > "$kardinal_version_go_file_abs_path" +package $KARDINAL_VERSION_PACKAGE_DIR + +const ( + // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! + KardinalVersion = "$new_version" + // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! +) +EOF + ''; +} From 0f3d297e6558ae619e11627a38762040c6a6bfe2 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 23:22:05 +0900 Subject: [PATCH 18/20] call expression before building cli golang app --- kardinal-cli/default.nix | 51 +++++++++++++--------------------------- 1 file changed, 16 insertions(+), 35 deletions(-) diff --git a/kardinal-cli/default.nix b/kardinal-cli/default.nix index aabe907..77aa6f7 100644 --- a/kardinal-cli/default.nix +++ b/kardinal-cli/default.nix @@ -1,47 +1,28 @@ -{ pkgs, commit_hash ? "dirty" }: let +{ + pkgs, + commit_hash ? "dirty" +}: let pname = "kardinal.cli"; - # Use the generate-kardinal-version Nix expression generateKardinalVersion = pkgs.callPackage ./scripts/generate_kardinal_version.nix { inherit pkgs; }; + _ = pkgs.runCommand "generate-version" { + buildInputs = [ generateKardinalVersion ]; + }; ldflags = pkgs.lib.concatStringsSep "\n" [ "-X github.com/kurtosis-tech/kurtosis/kardinal.AppName=${pname}" "-X github.com/kurtosis-tech/kurtosis/kardinal.Commit=${commit_hash}" ]; - in - pkgs.stdenv.mkDerivation { - name = pname; + pkgs.buildGoApplication { + # pname has to match the location (folder) where the main function is or use + # subPackages to specify the file (e.g. subPackages = ["some/folder/main.go"];) + inherit pname ldflags; + name = "${pname}"; + pwd = ./.; src = ./.; - buildInputs = [ generateKardinalVersion ] ++ (with pkgs; [ - go - # Add any other dependencies your build needs - ]); - - phases = [ "buildPhase" "installPhase" ]; # Ensure buildPhase is included - - buildPhase = '' - # Run the version generation before building - ${generateKardinalVersion}/bin/generate-kardinal-version - - # Now build the Go application - ${pkgs.go}/bin/go build -ldflags "${ldflags}" -o ${pname} ./... - ''; - - installPhase = '' - # Install the built binary - mkdir -p $out/bin - mv ${pname} $out/bin/ - ''; - - # This will ensure that the generated file is part of the final output - installCheckPhase = '' - # Check if the version file exists and is generated correctly - if [ ! -f "kardinal_version/kardinal_version.go" ]; then - echo "Version file not generated!" - exit 1 - fi - ''; - } + modules = ./gomod2nix.toml; + CGO_ENABLED = 0; + } \ No newline at end of file From d0855098bd314b8b426dc6ccd3439c9862b82404 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 23:23:59 +0900 Subject: [PATCH 19/20] move generate version expression to cli and remove old sh scripts --- flake.nix | 2 +- scripts/generate_kardinal_version.nix | 37 --------------------------- scripts/generate_kardinal_version.sh | 31 ---------------------- scripts/get-docker-tag.nix | 18 ------------- scripts/get-docker-tag.sh | 14 ---------- 5 files changed, 1 insertion(+), 101 deletions(-) delete mode 100755 scripts/generate_kardinal_version.nix delete mode 100755 scripts/generate_kardinal_version.sh delete mode 100644 scripts/get-docker-tag.nix delete mode 100755 scripts/get-docker-tag.sh diff --git a/flake.nix b/flake.nix index f6068ff..e60699c 100644 --- a/flake.nix +++ b/flake.nix @@ -87,7 +87,7 @@ }; }; - generateKardinalVersion = pkgs.callPackage ./scripts/generate_kardinal_version.nix { + generateKardinalVersion = pkgs.callPackage ./kardinal-cli/scripts/generate_kardinal_version.nix { inherit pkgs; }; diff --git a/scripts/generate_kardinal_version.nix b/scripts/generate_kardinal_version.nix deleted file mode 100755 index 01e6d15..0000000 --- a/scripts/generate_kardinal_version.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ pkgs, ... }: -pkgs.writeShellApplication { - name = "generate-kardinal-version"; - runtimeInputs = with pkgs; [ git ]; - - text = '' - set -euo pipefail - root_dirpath=$(git rev-parse --show-toplevel) - - KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" - KARDINAL_VERSION_GO_FILE="kardinal_version.go" - - # Check if the current commit has a tag - if git describe --tags --exact-match > /dev/null 2>&1; then - # If there's an exact match to a tag, use the tag as the version - new_version="$(git describe --tags --exact-match)" - else - # Otherwise, use the short commit SHA - commit_sha="$(git rev-parse --short=6 HEAD)" - # Check if the working directory is dirty - suffix="$(git diff --quiet || echo '-dirty')" - new_version="$commit_sha$suffix" - fi - - kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" - - cat << EOF > "$kardinal_version_go_file_abs_path" -package $KARDINAL_VERSION_PACKAGE_DIR - -const ( - // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! - KardinalVersion = "$new_version" - // !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! -) -EOF - ''; -} diff --git a/scripts/generate_kardinal_version.sh b/scripts/generate_kardinal_version.sh deleted file mode 100755 index b13f178..0000000 --- a/scripts/generate_kardinal_version.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/zsh - -set -euo pipefail -root_dirpath=$(git rev-parse --show-toplevel) - -KARDINAL_VERSION_PACKAGE_DIR="kardinal_version" -KARDINAL_VERSION_GO_FILE="kardinal_version.go" - -# Check if the current commit has a tag -if git describe --tags --exact-match > /dev/null 2>&1; then - # If there's an exact match to a tag, use the tag as the version - new_version="$(git describe --tags --exact-match)" -else - # Otherwise, use the short commit SHA - commit_sha="$(git rev-parse --short=6 HEAD)" - # Check if the working directory is dirty - suffix="$(git diff --quiet || echo '-dirty')" - new_version="$commit_sha$suffix" -fi -kardinal_version_go_file_abs_path="$root_dirpath/$KARDINAL_VERSION_PACKAGE_DIR/$KARDINAL_VERSION_GO_FILE" - - -cat << EOF > "$kardinal_version_go_file_abs_path" -package $KARDINAL_VERSION_PACKAGE_DIR - -const ( -// !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! -KardinalVersion = "$new_version" -// !!!!!!!!!!!!!!!!!! DO NOT MODIFY THIS! IT WILL BE UPDATED AUTOMATICALLY DURING THE BUILD PROCESS !!!!!!!!!!!!!!! -) -EOF \ No newline at end of file diff --git a/scripts/get-docker-tag.nix b/scripts/get-docker-tag.nix deleted file mode 100644 index c538467..0000000 --- a/scripts/get-docker-tag.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: -pkgs.writeShellApplication { - name = "get-docker-tag"; - runtimeInputs = with pkgs; [ git ]; - - text = '' - set -euo pipefail - - if ! git status > /dev/null; then - echo "Error: This command was run from outside a git repo" >&2 - exit 1 - fi - - commit_sha="$(git rev-parse --short=6 HEAD)" - suffix="$(git diff --quiet || echo '-dirty')" - echo "$commit_sha$suffix" - ''; -} \ No newline at end of file diff --git a/scripts/get-docker-tag.sh b/scripts/get-docker-tag.sh deleted file mode 100755 index d2c5b65..0000000 --- a/scripts/get-docker-tag.sh +++ /dev/null @@ -1,14 +0,0 @@ -set -euo pipefail # Bash "strict mode" - -# ================================================================================================== -# Main Logic -# ================================================================================================== - -if ! git status > /dev/null; then - echo "Error: This command was run from outside a git repo" >&2 - exit 1 -fi - -commit_sha="$(git rev-parse --short=6 HEAD)" -suffix="$(git diff --quiet || echo '-dirty')" -echo "${commit_sha}${suffix}" \ No newline at end of file From 47843814dcc7a29462a41bec297ce0fb24b29320 Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Wed, 16 Oct 2024 23:27:38 +0900 Subject: [PATCH 20/20] update shell nix --- shell.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell.nix b/shell.nix index db6c855..82b5908 100644 --- a/shell.nix +++ b/shell.nix @@ -12,7 +12,7 @@ ''; go-tidy-all = import ./scripts/go-tidy-all.nix {inherit pkgs;}; - generate-kardinal-version = import ./scripts/generate_kardinal_version.nix {inherit pkgs;}; + generate-kardinal-version = import ./kardinal-cli/scripts/generate_kardinal_version.nix {inherit pkgs;}; manager_shell = pkgs.callPackage ./kardinal-manager/shell.nix {inherit pkgs;}; cli_shell = pkgs.callPackage ./kardinal-cli/shell.nix {inherit pkgs;}; cli_kontrol_api_shell = pkgs.callPackage ./libs/cli-kontrol-api/shell.nix {inherit pkgs;};