From e8448560b3de9edbc5f0759a0b378dc7bbb8a197 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Wed, 4 Jun 2025 18:03:16 -0500 Subject: [PATCH 01/10] =?UTF-8?q?GitLab=20metadata=20link=20commit=20at=20?= =?UTF-8?q?2025-06-04=2018:03:15=20=E2=80=94=20https://gitlab.com/mrhavens?= =?UTF-8?q?/NarcStudy=5FElenaByron/-/commit/c899eec3966607ad594e9d9ee32a86?= =?UTF-8?q?db9d3528b1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitfield/gitlab.sigil.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitfield/gitlab.sigil.md b/.gitfield/gitlab.sigil.md index 95b3fb2..c189821 100644 --- a/.gitfield/gitlab.sigil.md +++ b/.gitfield/gitlab.sigil.md @@ -6,24 +6,24 @@ - **Local Repo Path**: `/home/mrhavens/narcwork/NarcStudy_ElenaByron` - **Remote Label**: `gitlab` - **Default Branch**: `main` -- **Repo Created**: `2025-06-04 18:02:08` +- **Repo Created**: `2025-06-04 18:03:15` --- ## ๐Ÿ“ฆ Commit Info -- **This Commit Timestamp**: `2025-06-04 18:02:08` -- **This Commit SHA**: `1af00f55aad85e89e9b5b0a686dc382c31eb9376` +- **This Commit Timestamp**: `2025-06-04 18:03:15` +- **This Commit SHA**: `c899eec3966607ad594e9d9ee32a86db9d3528b1` - **Last Commit Message**: `Post-Radicle sync at 2025-06-04 18:00:49` - **Last Commit Author**: `Mark Randall Havens ` -- **Last Commit Date**: `Wed Jun 4 18:01:48 2025 -0500` -- **This Commit URL**: [https://gitlab.com/mrhavens/NarcStudy_ElenaByron/-/commit/1af00f55aad85e89e9b5b0a686dc382c31eb9376](https://gitlab.com/mrhavens/NarcStudy_ElenaByron/-/commit/1af00f55aad85e89e9b5b0a686dc382c31eb9376) +- **Last Commit Date**: `Wed Jun 4 18:02:53 2025 -0500` +- **This Commit URL**: [https://gitlab.com/mrhavens/NarcStudy_ElenaByron/-/commit/c899eec3966607ad594e9d9ee32a86db9d3528b1](https://gitlab.com/mrhavens/NarcStudy_ElenaByron/-/commit/c899eec3966607ad594e9d9ee32a86db9d3528b1) --- ## ๐Ÿ“Š Repo Status -- **Total Commits**: `34` +- **Total Commits**: `41` - **Tracked Files**: `46` - **Uncommitted Changes**: `No` - **Latest Tag**: `None` @@ -48,7 +48,7 @@ - **Running in Docker**: `No` - **Running in WSL**: `Yes` - **Virtual Machine**: `wsl` -- **System Uptime**: `up 18 hours, 23 minutes` +- **System Uptime**: `up 18 hours, 24 minutes` - **MAC Address**: `00:15:5d:0e:62:60` - **Local IP**: `172.18.207.124` - **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics` From 4ebd13ca9456268bed3c5b367627d9fa07f8d7c8 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Wed, 4 Jun 2025 18:03:17 -0500 Subject: [PATCH 02/10] Post-GitLab sync at 2025-06-04 18:00:49 --- .gitfield/pushed.log | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitfield/pushed.log b/.gitfield/pushed.log index fcabfb1..fea6708 100644 --- a/.gitfield/pushed.log +++ b/.gitfield/pushed.log @@ -23,3 +23,4 @@ [2025-06-04 18:02:35] Bitbucket: https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron [2025-06-04 18:02:53] GitHub: https://github.com/mrhavens/NarcStudy_ElenaByron [2025-06-04 18:02:53] Radicle: https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z45QC21eWL1F43VSbnV9AZbCZrHQJ +[2025-06-04 18:03:17] GitLab: https://gitlab.com/mrhavens/NarcStudy_ElenaByron From 9c5453653285f27daf84cf88146fe25d5ece6ae0 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Wed, 4 Jun 2025 18:03:32 -0500 Subject: [PATCH 03/10] =?UTF-8?q?Bitbucket=20metadata=20link=20commit=20at?= =?UTF-8?q?=202025-06-04=2018:03:32=20=E2=80=94=20https://bitbucket.org/th?= =?UTF-8?q?efoldwithin/NarcStudy=5FElenaByron/commits/4ebd13ca9456268bed3c?= =?UTF-8?q?5b367627d9fa07f8d7c8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitfield/bitbucket.sigil.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitfield/bitbucket.sigil.md b/.gitfield/bitbucket.sigil.md index d986867..6e3d56f 100644 --- a/.gitfield/bitbucket.sigil.md +++ b/.gitfield/bitbucket.sigil.md @@ -6,24 +6,24 @@ - **Local Repo Path**: `/home/mrhavens/narcwork/NarcStudy_ElenaByron` - **Remote Label**: `bitbucket` - **Default Branch**: `main` -- **This Commit Date**: `2025-06-04 18:02:34` +- **This Commit Date**: `2025-06-04 18:03:32` --- ## ๐Ÿ“ฆ Commit Info -- **This Commit Timestamp**: `2025-06-04 18:02:34` -- **Last Commit SHA**: `43ac425257f487dcc700c67d5d3d89b9e8843cda` +- **This Commit Timestamp**: `2025-06-04 18:03:32` +- **Last Commit SHA**: `4ebd13ca9456268bed3c5b367627d9fa07f8d7c8` - **Last Commit Message**: `Post-GitLab sync at 2025-06-04 18:00:49` - **Last Commit Author**: `Mark Randall Havens ` -- **Last Commit Date**: `Wed Jun 4 18:02:10 2025 -0500` -- **This Commit URL**: [https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron/commits/43ac425257f487dcc700c67d5d3d89b9e8843cda](https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron/commits/43ac425257f487dcc700c67d5d3d89b9e8843cda) +- **Last Commit Date**: `Wed Jun 4 18:03:17 2025 -0500` +- **This Commit URL**: [https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron/commits/4ebd13ca9456268bed3c5b367627d9fa07f8d7c8](https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron/commits/4ebd13ca9456268bed3c5b367627d9fa07f8d7c8) --- ## ๐Ÿ“Š Repo Status -- **Total Commits**: `36` +- **Total Commits**: `43` - **Tracked Files**: `46` - **Uncommitted Changes**: `No` - **Latest Tag**: `None` @@ -52,7 +52,7 @@ - **Running in Docker**: `No` - **Running in WSL**: `Yes` - **Virtual Machine**: `wsl` -- **System Uptime**: `up 18 hours, 23 minutes` +- **System Uptime**: `up 18 hours, 24 minutes` --- From 646bbd0764f3cccb366f58f82a7455e6c72a7508 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Wed, 4 Jun 2025 18:03:33 -0500 Subject: [PATCH 04/10] Post-Bitbucket sync at 2025-06-04 18:00:49 --- .gitfield/pushed.log | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitfield/pushed.log b/.gitfield/pushed.log index fea6708..7ea26b1 100644 --- a/.gitfield/pushed.log +++ b/.gitfield/pushed.log @@ -24,3 +24,4 @@ [2025-06-04 18:02:53] GitHub: https://github.com/mrhavens/NarcStudy_ElenaByron [2025-06-04 18:02:53] Radicle: https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z45QC21eWL1F43VSbnV9AZbCZrHQJ [2025-06-04 18:03:17] GitLab: https://gitlab.com/mrhavens/NarcStudy_ElenaByron +[2025-06-04 18:03:33] Bitbucket: https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron From 30104e78e30a5c5dab8ebc163ab0fc4579d756bb Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Wed, 4 Jun 2025 18:03:54 -0500 Subject: [PATCH 05/10] =?UTF-8?q?GitHub=20metadata=20link=20commit=20at=20?= =?UTF-8?q?2025-06-04=2018:03:54=20=E2=80=94=20https://github.com/mrhavens?= =?UTF-8?q?/NarcStudy=5FElenaByron/commit/646bbd0764f3cccb366f58f82a7455e6?= =?UTF-8?q?c72a7508?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitfield/github.sigil.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitfield/github.sigil.md b/.gitfield/github.sigil.md index cd8f26b..0e5699b 100644 --- a/.gitfield/github.sigil.md +++ b/.gitfield/github.sigil.md @@ -6,24 +6,24 @@ - **Local Repo Path**: `/home/mrhavens/narcwork/NarcStudy_ElenaByron` - **Remote Label**: `github` - **Default Branch**: `main` -- **This Commit Date**: `2025-06-04 18:02:52` +- **This Commit Date**: `2025-06-04 18:03:54` --- ## ๐Ÿ“ฆ Commit Info -- **This Commit Timestamp**: `2025-06-04 18:02:52` -- **Last Commit SHA**: `28a0868dbcd80e19b625967d536bed5d05bfd619` +- **This Commit Timestamp**: `2025-06-04 18:03:54` +- **Last Commit SHA**: `646bbd0764f3cccb366f58f82a7455e6c72a7508` - **Last Commit Message**: `Post-Bitbucket sync at 2025-06-04 18:00:49` - **Last Commit Author**: `Mark Randall Havens ` -- **Last Commit Date**: `Wed Jun 4 18:02:35 2025 -0500` -- **This Commit URL**: [https://github.com/mrhavens/NarcStudy_ElenaByron/commit/28a0868dbcd80e19b625967d536bed5d05bfd619](https://github.com/mrhavens/NarcStudy_ElenaByron/commit/28a0868dbcd80e19b625967d536bed5d05bfd619) +- **Last Commit Date**: `Wed Jun 4 18:03:33 2025 -0500` +- **This Commit URL**: [https://github.com/mrhavens/NarcStudy_ElenaByron/commit/646bbd0764f3cccb366f58f82a7455e6c72a7508](https://github.com/mrhavens/NarcStudy_ElenaByron/commit/646bbd0764f3cccb366f58f82a7455e6c72a7508) --- ## ๐Ÿ“Š Repo Status -- **Total Commits**: `38` +- **Total Commits**: `45` - **Tracked Files**: `46` - **Uncommitted Changes**: `No` - **Latest Tag**: `None` @@ -48,7 +48,7 @@ - **Running in Docker**: `No` - **Running in WSL**: `Yes` - **Virtual Machine**: `wsl` -- **System Uptime**: `up 18 hours, 24 minutes` +- **System Uptime**: `up 18 hours, 25 minutes` - **MAC Address**: `00:15:5d:0e:62:60` - **Local IP**: `172.18.207.124` - **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics` From 721922a23649f4e90b7b6b6dd0172b29fe4c2433 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Wed, 4 Jun 2025 18:03:55 -0500 Subject: [PATCH 06/10] Post-GitHub sync at 2025-06-04 18:00:49 --- .gitfield/pushed.log | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitfield/pushed.log b/.gitfield/pushed.log index 7ea26b1..660680e 100644 --- a/.gitfield/pushed.log +++ b/.gitfield/pushed.log @@ -25,3 +25,4 @@ [2025-06-04 18:02:53] Radicle: https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z45QC21eWL1F43VSbnV9AZbCZrHQJ [2025-06-04 18:03:17] GitLab: https://gitlab.com/mrhavens/NarcStudy_ElenaByron [2025-06-04 18:03:33] Bitbucket: https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron +[2025-06-04 18:03:55] GitHub: https://github.com/mrhavens/NarcStudy_ElenaByron From 09e5a3cd3eb19ffe72f4b027afeaf3babcc73040 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Fri, 6 Jun 2025 12:58:26 -0500 Subject: [PATCH 07/10] =?UTF-8?q?Local=20metadata=20link=20commit=20at=202?= =?UTF-8?q?025-06-06=2012:58:25=20=E2=80=94=20file:///home/mrhavens/git-lo?= =?UTF-8?q?cal-repos/git-sigil.git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitfield/local.sigil.md | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .gitfield/local.sigil.md diff --git a/.gitfield/local.sigil.md b/.gitfield/local.sigil.md new file mode 100644 index 0000000..66911ed --- /dev/null +++ b/.gitfield/local.sigil.md @@ -0,0 +1,59 @@ +# ๐Ÿ”— Local Repository Link + +- **Repo Name**: `NarcStudy_ElenaByron` +- **Local User**: `mrhavens` +- **Remote URL**: `file:///home/mrhavens/git-local-repos/git-sigil.git` +- **Local Repo Path**: `/home/mrhavens/narcwork/NarcStudy_ElenaByron` +- **Remote Label**: `local` +- **Default Branch**: `main` +- **Repo Created**: `2025-06-06 12:58:25` + +--- + +## ๐Ÿ“ฆ Commit Info + +- **This Commit Timestamp**: `2025-06-06 12:58:25` +- **Last Commit SHA**: `721922a23649f4e90b7b6b6dd0172b29fe4c2433` +- **Last Commit Message**: `Post-GitHub sync at 2025-06-04 18:00:49` +- **Last Commit Author**: `Mark Randall Havens ` +- **Last Commit Date**: `Wed Jun 4 18:03:55 2025 -0500` +- **This Commit URL**: `file:///home/mrhavens/git-local-repos/git-sigil.git` + +--- + +## ๐Ÿ“Š Repo Status + +- **Total Commits**: `47` +- **Tracked Files**: `46` +- **Uncommitted Changes**: `Yes` +- **Latest Tag**: `None` + +--- + +## ๐Ÿงญ Environment + +- **Host Machine**: `DESKTOP-E5SGI58` +- **Current User**: `mrhavens` +- **Time Zone**: `CDT` +- **Script Version**: `v1.0` + +--- + +## ๐Ÿงฌ Hardware & OS Fingerprint + +- **OS Name**: `Linux` +- **OS Version**: `Ubuntu 24.04.2 LTS` +- **Kernel Version**: `5.15.167.4-microsoft-standard-WSL2` +- **Architecture**: `x86_64` +- **Running in Docker**: `No` +- **Running in WSL**: `Yes` +- **Virtual Machine**: `wsl` +- **System Uptime**: `up 11 hours, 41 minutes` +- **MAC Address**: `00:15:5d:86:d8:cc` +- **Local IP**: `172.18.207.124` +- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics` +- **Total RAM (GB)**: `3.63` + +--- + +_Auto-generated by `gitfield-local` push script._ From 59c552da834b3bc45c6d416c24451e770e61731d Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Fri, 6 Jun 2025 12:59:42 -0500 Subject: [PATCH 08/10] Post-Local sync at 2025-06-06 12:58:25 --- .gitfield/push_log.json.tmp | 0 .gitfield/pushed.log | 1 + gitfield-bitbucket | 201 ----------------------- gitfield-github | 193 ---------------------- gitfield-gitlab | 242 --------------------------- gitfield-radicle | 318 ------------------------------------ gitfield-sync | 185 --------------------- 7 files changed, 1 insertion(+), 1139 deletions(-) create mode 100644 .gitfield/push_log.json.tmp delete mode 100755 gitfield-bitbucket delete mode 100755 gitfield-github delete mode 100755 gitfield-gitlab delete mode 100755 gitfield-radicle delete mode 100755 gitfield-sync diff --git a/.gitfield/push_log.json.tmp b/.gitfield/push_log.json.tmp new file mode 100644 index 0000000..e69de29 diff --git a/.gitfield/pushed.log b/.gitfield/pushed.log index 660680e..7295b05 100644 --- a/.gitfield/pushed.log +++ b/.gitfield/pushed.log @@ -26,3 +26,4 @@ [2025-06-04 18:03:17] GitLab: https://gitlab.com/mrhavens/NarcStudy_ElenaByron [2025-06-04 18:03:33] Bitbucket: https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron [2025-06-04 18:03:55] GitHub: https://github.com/mrhavens/NarcStudy_ElenaByron +[2025-06-06 12:59:42] Local: diff --git a/gitfield-bitbucket b/gitfield-bitbucket deleted file mode 100755 index 4748a8d..0000000 --- a/gitfield-bitbucket +++ /dev/null @@ -1,201 +0,0 @@ -#!/bin/bash -set -euo pipefail -IFS=$'\n\t' - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ CONFIGURATION โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -BITBUCKET_USER="mrhavens" -BITBUCKET_WORKSPACE="thefoldwithin" -REMOTE_NAME="bitbucket" -REPO_NAME=$(basename "$(pwd)") -EMAIL="mark.r.havens@gmail.com" -FULL_NAME="Mark Randall Havens" -APP_PASS_FILE="$HOME/.bitbucket_app_password" -API_URL="https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$REPO_NAME" -SSH_REMOTE="git@bitbucket.org:$BITBUCKET_WORKSPACE/$REPO_NAME.git" -WEB_LINK="https://bitbucket.org/$BITBUCKET_WORKSPACE/$REPO_NAME" -SCRIPT_VERSION="1.0" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ LOGGING UTILS โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info() { echo -e "\n\e[1;34m[INFO]\e[0m $*"; } -warn() { echo -e "\n\e[1;33m[WARN]\e[0m $*"; } -error() { echo -e "\n\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ OS + HARDWARE FINGERPRINT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -OS_NAME=$(uname -s) -KERNEL_VERSION=$(uname -r) -ARCHITECTURE=$(uname -m) -OS_PRETTY_NAME=$(grep PRETTY_NAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"' || echo "Unknown") -DOCKER_CHECK=$(grep -qE '/docker|/lxc' /proc/1/cgroup 2>/dev/null && echo "Yes" || echo "No") -WSL_CHECK=$(grep -qi microsoft /proc/version 2>/dev/null && echo "Yes" || echo "No") -VM_CHECK=$(command -v systemd-detect-virt >/dev/null && systemd-detect-virt || echo "Unknown") -UPTIME=$(uptime -p 2>/dev/null || echo "Unknown") -HOSTNAME=$(hostname) -CURRENT_USER=$(whoami) -TIMEZONE=$(date +%Z) -LOCAL_IP=$(hostname -I | awk '{print $1}' || echo "Unknown") -MAC_ADDRESS=$(ip link show | awk '/ether/ {print $2; exit}' || echo "Unknown") -CPU_MODEL=$(grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | sed 's/^ //g' || echo "Unknown") -TOTAL_RAM=$(awk '/MemTotal/ {printf "%.2f", $2/1024/1024}' /proc/meminfo 2>/dev/null || echo "Unknown") - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ CHECK + INSTALL TOOLS โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info "Checking prerequisites..." -sudo apt update -qq -sudo apt install -y git curl jq openssh-client || error "Dependency install failed" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ GIT IDENTITY SETUP โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -git config --global user.name "$FULL_NAME" -git config --global user.email "$EMAIL" -info "Git identity: $FULL_NAME <$EMAIL>" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ SSH KEYGEN + AGENT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if [ ! -f ~/.ssh/id_rsa ]; then - info "Generating new SSH key..." - ssh-keygen -t rsa -b 4096 -C "$EMAIL" -f ~/.ssh/id_rsa -N "" -fi - -eval "$(ssh-agent -s)" -ssh-add ~/.ssh/id_rsa || error "Failed to add SSH key" -ssh-keyscan -t rsa bitbucket.org >> ~/.ssh/known_hosts 2>/dev/null || true - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ SSH AUTH VERIFICATION โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info "Verifying SSH access to Bitbucket..." -if ssh -T git@bitbucket.org 2>&1 | grep -q "authenticated"; then - info "โœ“ SSH access to Bitbucket verified." -else - warn "โŒ SSH key not authorized with Bitbucket." - echo "โ†’ Visit: https://bitbucket.org/account/settings/ssh-keys/" - cat ~/.ssh/id_rsa.pub - exit 1 -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ BITBUCKET APP PASSWORD SETUP โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if [ ! -f "$APP_PASS_FILE" ]; then - echo "๐Ÿ” Create a Bitbucket App Password (repo:admin + write + webhook)" - echo "โ†’ https://bitbucket.org/account/settings/app-passwords/" - read -rsp "Enter Bitbucket App Password (input hidden): " APP_PASS - echo "$APP_PASS" > "$APP_PASS_FILE" - chmod 600 "$APP_PASS_FILE" -fi -APP_PASS=$(<"$APP_PASS_FILE") - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ GIT INIT & COMMIT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if [ ! -d .git ]; then - git init - git add . - git commit -m "Initial commit" -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ CREATE REMOTE IF NOT EXISTS โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -REPO_EXISTS=$(curl -s -u "$BITBUCKET_USER:$APP_PASS" "$API_URL" | jq -r '.name // empty') -if [ -z "$REPO_EXISTS" ]; then - curl -s -u "$BITBUCKET_USER:$APP_PASS" -X POST "$API_URL" \ - -H "Content-Type: application/json" \ - -d '{"scm": "git", "is_private": false}' -fi - -git remote remove "$REMOTE_NAME" 2>/dev/null || true -git remote add "$REMOTE_NAME" "$SSH_REMOTE" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ WRITE METADATA MARKDOWN โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') -DEFAULT_BRANCH=$(git symbolic-ref --short HEAD) -REPO_PATH=$(git rev-parse --show-toplevel) -mkdir -p "$REPO_PATH/.gitfield" && MARKDOWN_FILE="$REPO_PATH/.gitfield/bitbucket.sigil.md" -LATEST_SHA=$(git rev-parse HEAD) -LAST_COMMIT_MSG=$(git log -1 --pretty=format:"%s") -LAST_COMMIT_DATE=$(git log -1 --pretty=format:"%ad") -LAST_COMMIT_AUTHOR=$(git log -1 --pretty=format:"%an <%ae>") -TOTAL_COMMITS=$(git rev-list --count HEAD) -TRACKED_FILES=$(git ls-files | wc -l) -UNCOMMITTED=$(if ! git diff --quiet || ! git diff --cached --quiet; then echo "Yes"; else echo "No"; fi) -LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "None") - -cat > "$MARKDOWN_FILE" <&2; exit 1; } - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ TOOLCHAIN SETUP โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info "Checking for required tools..." -sudo apt update -qq -sudo apt install -y git curl jq openssh-client lsb-release || error "Tool install failed" - -if ! command -v gh &>/dev/null; then - info "Installing GitHub CLI..." - curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg - sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture)] signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg https://cli.github.com/packages stable main" | \ - sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null - sudo apt update && sudo apt install gh -y || error "GitHub CLI install failed" -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ AUTH + IDENTITY โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if ! gh auth status &>/dev/null; then - gh auth login || error "GitHub authentication failed" -fi - -git config --global user.name "${DEFAULT_NAME}" -git config --global user.email "${DEFAULT_EMAIL}" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ SSH + GIT INIT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if [ ! -f "$HOME/.ssh/id_ed25519" ]; then - ssh-keygen -t ed25519 -C "$DEFAULT_EMAIL" -f "$HOME/.ssh/id_ed25519" -N "" - eval "$(ssh-agent -s)" - ssh-add "$HOME/.ssh/id_ed25519" - gh ssh-key add "$HOME/.ssh/id_ed25519.pub" --title "$(hostname)" || warn "Manual add may be needed" -fi - -if [ ! -d .git ]; then - git init - git add . - git commit -m "Initial commit" -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ GITHUB REPO CONFIGURATION โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -USERNAME=$(gh api user | jq -r .login) -SSH_REMOTE_URL="git@github.com:$USERNAME/$REPO_NAME.git" -WEB_LINK="https://github.com/$USERNAME/$REPO_NAME" - -if ! git remote get-url "$GIT_REMOTE_NAME" &>/dev/null; then - if gh repo view "$USERNAME/$REPO_NAME" &>/dev/null; then - git remote add "$GIT_REMOTE_NAME" "$SSH_REMOTE_URL" - else - gh repo create "$REPO_NAME" --public --source=. --remote="$GIT_REMOTE_NAME" --push || error "Failed to create repo" - fi -else - git remote set-url "$GIT_REMOTE_NAME" "$SSH_REMOTE_URL" -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ GIT METADATA SNAPSHOT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -TIMESTAMP="$(date '+%Y-%m-%d %H:%M:%S')" -DEFAULT_BRANCH="$(git symbolic-ref --short HEAD)" -REPO_PATH="$(git rev-parse --show-toplevel)" -mkdir -p "$REPO_PATH/.gitfield" && MARKDOWN_FILE="$REPO_PATH/.gitfield/github.sigil.md" -LATEST_SHA=$(git rev-parse HEAD) -LAST_COMMIT_MSG=$(git log -1 --pretty=format:"%s") -LAST_COMMIT_DATE=$(git log -1 --pretty=format:"%ad") -LAST_COMMIT_AUTHOR=$(git log -1 --pretty=format:"%an <%ae>") -TOTAL_COMMITS=$(git rev-list --count HEAD) -TRACKED_FILES=$(git ls-files | wc -l) -UNCOMMITTED=$(if ! git diff --quiet || ! git diff --cached --quiet; then echo "Yes"; else echo "No"; fi) -LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "None") -HOSTNAME=$(hostname) -CURRENT_USER=$(whoami) -TIMEZONE=$(date +%Z) - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ HARDWARE + OS FINGERPRINT BLOCK โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -OS_NAME=$(uname -s) -KERNEL_VERSION=$(uname -r) -ARCHITECTURE=$(uname -m) -OS_PRETTY_NAME=$(grep PRETTY_NAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"') || OS_PRETTY_NAME="Unknown" -DOCKER_CHECK=$(grep -qE '/docker|/lxc' /proc/1/cgroup 2>/dev/null && echo "Yes" || echo "No") -WSL_CHECK=$(grep -qi microsoft /proc/version 2>/dev/null && echo "Yes" || echo "No") -VM_CHECK=$(systemd-detect-virt 2>/dev/null || echo "Unknown") -UPTIME=$(uptime -p 2>/dev/null || echo "Unknown") -MAC_ADDR=$(ip link | awk '/ether/ {print $2}' | head -n 1) -LOCAL_IP=$(hostname -I | awk '{print $1}') -CPU_MODEL=$(grep -m1 'model name' /proc/cpuinfo | cut -d: -f2 | sed 's/^ //') -RAM_GB=$(awk '/MemTotal/ {printf "%.2f", $2/1024/1024}' /proc/meminfo) - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ WRITE RICH MARKDOWN ARTIFACT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -cat > "$MARKDOWN_FILE" </dev/null; then - git push -u "$GIT_REMOTE_NAME" "$DEFAULT_BRANCH" -else - git push "$GIT_REMOTE_NAME" "$DEFAULT_BRANCH" -fi - -info "โœ… GitHub push complete." -echo -e "\n๐Ÿ”— View in browser: $WEB_LINK\n" diff --git a/gitfield-gitlab b/gitfield-gitlab deleted file mode 100755 index c470bac..0000000 --- a/gitfield-gitlab +++ /dev/null @@ -1,242 +0,0 @@ -#!/bin/bash -IFS=$'\n\t' - -# Configuration -GIT_REMOTE_NAME="gitlab" -REPO_NAME=$(basename "$(pwd)") || REPO_NAME="Unknown" -DEFAULT_NAME="Mark Randall Havens" -DEFAULT_EMAIL="mark.r.havens@gmail.com" -GITLAB_WEB="https://gitlab.com" -GITLAB_API="$GITLAB_WEB/api/v4" -GITLAB_SSH="git@gitlab.com" -TOKEN_FILE="$HOME/.gitfield_token" -SCRIPT_VERSION="1.0" -MARKDOWN_FILE="$(git rev-parse --show-toplevel)/.gitfield/gitlab.sigil.md" && mkdir -p "$(dirname "$MARKDOWN_FILE")" - -info() { echo -e "\e[1;34m[INFO]\e[0m $*"; } -warn() { echo -e "\e[1;33m[WARN]\e[0m $*"; } -error() { echo -e "\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } - -# Function to generate markdown file -generate_markdown() { - info "Generating markdown file: $MARKDOWN_FILE" - TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S' 2>/dev/null || echo "Unknown") - DEFAULT_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null || echo "Unknown") - REPO_PATH=$(git rev-parse --show-toplevel) - LATEST_SHA=$(git rev-parse HEAD 2>/dev/null || echo "Unknown") - LAST_COMMIT_MSG=$(git log -1 --pretty=format:"%s" 2>/dev/null || echo "Unknown") - LAST_COMMIT_DATE=$(git log -1 --pretty=format:"%ad" 2>/dev/null || echo "Unknown") - LAST_COMMIT_AUTHOR=$(git log -1 --pretty=format:"%an <%ae>" 2>/dev/null || echo "Unknown") - TOTAL_COMMITS=$(git rev-list --count HEAD 2>/dev/null || echo "Unknown") - TRACKED_FILES=$(git ls-files 2>/dev/null | wc -l 2>/dev/null || echo "Unknown") - UNCOMMITTED=$(if ! git diff --quiet 2>/dev/null || ! git diff --cached --quiet 2>/dev/null; then echo "Yes"; else echo "No"; fi) - LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "None") - HOSTNAME=$(hostname 2>/dev/null || echo "Unknown") - CURRENT_USER=$(whoami 2>/dev/null || echo "Unknown") - TIMEZONE=$(date +%Z 2>/dev/null || echo "Unknown") - OS_NAME=$(uname -s 2>/dev/null || echo "Unknown") - KERNEL_VERSION=$(uname -r 2>/dev/null || echo "Unknown") - ARCHITECTURE=$(uname -m 2>/dev/null || echo "Unknown") - OS_PRETTY_NAME=$(grep PRETTY_NAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"' || echo "Unknown") - DOCKER_CHECK=$(grep -qE '/docker|/lxc' /proc/1/cgroup 2>/dev/null && echo "Yes" || echo "No") - WSL_CHECK=$(grep -qi microsoft /proc/version 2>/dev/null && echo "Yes" || echo "No") - VM_CHECK=$(systemd-detect-virt 2>/dev/null || echo "Unknown") - UPTIME=$(uptime -p 2>/dev/null || echo "Unknown") - MAC_ADDR=$(ip link 2>/dev/null | awk '/ether/ {print $2}' | head -n 1 2>/dev/null || echo "Unknown") - LOCAL_IP=$(hostname -I 2>/dev/null | awk '{print $1}' 2>/dev/null || echo "Unknown") - CPU_MODEL=$(grep -m1 'model name' /proc/cpuinfo 2>/dev/null | cut -d: -f2 | sed 's/^ //' 2>/dev/null || echo "Unknown") - RAM_GB=$(awk '/MemTotal/ {printf "%.2f", $2/1024/1024}' /proc/meminfo 2>/dev/null || echo "Unknown") - WEB_LINK="$GITLAB_WEB/$USERNAME/$REPO_NAME" - - cat > "$MARKDOWN_FILE" </dev/null || warn "Failed to remove token file" - info "Token reset requested." -fi - -if [ -f "$TOKEN_FILE" ] && [ "$RESET_TOKEN" = false ]; then - TOKEN=$(cat "$TOKEN_FILE" 2>/dev/null || error "Failed to read token file") - info "Using cached token from $TOKEN_FILE" -else - echo - echo "๐Ÿ” Paste your GitLab Personal Access Token (scopes: api, read_user, write_repository, write_ssh_key)" - echo "โ†’ Generate at: $GITLAB_WEB/-/user_settings/personal_access_tokens" - read -rp "๐Ÿ”‘ Token: " TOKEN - echo "$TOKEN" > "$TOKEN_FILE" 2>/dev/null || warn "Failed to save token file" - chmod 600 "$TOKEN_FILE" 2>/dev/null || warn "Failed to set token file permissions" - info "Token saved for future use at $TOKEN_FILE" -fi - -# Install Dependencies -sudo apt update -qq 2>/dev/null || warn "apt update failed, continuing..." -sudo apt install -y git curl jq openssh-client lsb-release 2>/dev/null || warn "Tool install failed, continuing..." - -# Identity -git config --global user.name "$DEFAULT_NAME" 2>/dev/null || warn "Failed to set git user name" -git config --global user.email "$DEFAULT_EMAIL" 2>/dev/null || warn "Failed to set git user email" -info "Git identity set to: $DEFAULT_NAME <$DEFAULT_EMAIL>" - -# Git Initialization -if [ ! -d .git ]; then - git init 2>/dev/null || warn "Git init failed, continuing..." - git add . 2>/dev/null || warn "Nothing to add" - git commit -m "Initial commit" 2>/dev/null || warn "Nothing to commit" -fi - -if ! git rev-parse HEAD &>/dev/null; then - git add . 2>/dev/null && git commit -m "Initial commit" 2>/dev/null || warn "Nothing to commit" -fi - -# SSH Setup -if [ ! -f ~/.ssh/id_rsa ]; then - ssh-keygen -t rsa -b 4096 -C "$DEFAULT_EMAIL" -f ~/.ssh/id_rsa -N "" 2>/dev/null || error "SSH keygen failed" -fi - -eval "$(ssh-agent -s 2>/dev/null)" || warn "Failed to start ssh-agent, continuing..." -ssh-add ~/.ssh/id_rsa 2>/dev/null || error "Failed to add SSH key" - -# Fetch GitLab Username -USERNAME=$(curl -s --header "PRIVATE-TOKEN: $TOKEN" "$GITLAB_API/user" | jq -r '.username' 2>/dev/null) || error "Invalid token" -info "GitLab username: $USERNAME" - -# SSH Key Upload to GitLab -SSH_TEST_OUTPUT=$(ssh -T "$GITLAB_SSH" 2>&1) -if ! echo "$SSH_TEST_OUTPUT" | grep -q "Welcome"; then - warn "SSH test failed, attempting to upload SSH key. Output: $SSH_TEST_OUTPUT" - PUBKEY=$(cat ~/.ssh/id_rsa.pub 2>/dev/null || warn "Failed to read SSH public key, continuing...") - TITLE="AutoKey-$(hostname)-$(date +%s 2>/dev/null || echo 'unknown')" - CURL_OUTPUT=$(curl -s --fail -X POST "$GITLAB_API/user/keys" \ - -H "PRIVATE-TOKEN: $TOKEN" \ - -H "Content-Type: application/json" \ - -d "{\"title\": \"$TITLE\", \"key\": \"$PUBKEY\"}" 2>&1) - if [[ $? -ne 0 ]]; then - warn "SSH key upload failed: $CURL_OUTPUT" - else - info "SSH key uploaded successfully." - sleep 2 - SSH_TEST_OUTPUT=$(ssh -T "$GITLAB_SSH" 2>&1) - if ! echo "$SSH_TEST_OUTPUT" | grep -q "Welcome"; then - warn "SSH test still failing after key upload. Output: $SSH_TEST_OUTPUT" - else - info "SSH test passed after key upload." - fi - fi -else - info "SSH test passed: $SSH_TEST_OUTPUT" -fi - -# Set Up Remote Repository (non-critical, allow failures) -set +e -REMOTE_URL="$GITLAB_SSH:$USERNAME/$REPO_NAME.git" -info "Checking if remote '$GIT_REMOTE_NAME' exists..." -REMOTE_EXISTS=$(git remote get-url "$GIT_REMOTE_NAME" 2>&1) -REMOTE_EXIT_CODE=$? -info "git remote get-url output: $REMOTE_EXISTS" -info "git remote get-url exit code: $REMOTE_EXIT_CODE" - -if [[ $REMOTE_EXIT_CODE -ne 0 ]]; then - info "Remote '$GIT_REMOTE_NAME' not found, setting up..." - CURL_OUTPUT=$(curl -s --fail -X POST "$GITLAB_API/projects" \ - -H "PRIVATE-TOKEN: $TOKEN" \ - -H "Content-Type: application/json" \ - -d "{\"name\": \"$REPO_NAME\", \"visibility\": \"public\"}" 2>&1) - if [[ $? -ne 0 ]]; then - warn "Failed to create GitLab project: $CURL_OUTPUT" - PROJECT_EXISTS=$(curl -s --header "PRIVATE-TOKEN: $TOKEN" "$GITLAB_API/projects?search=$REPO_NAME" | jq -r '.[] | select(.name == "'"$REPO_NAME"'") | .id' 2>&1) - if [[ $? -ne 0 || -z "$PROJECT_EXISTS" ]]; then - warn "Project creation failed and project does not exist: $PROJECT_EXISTS" - info "Proceeding with remote URL anyway: $REMOTE_URL" - else - info "Project already exists on GitLab." - fi - else - info "GitLab project created successfully." - fi - git remote add "$GIT_REMOTE_NAME" "$REMOTE_URL" 2>/dev/null || warn "Failed to add remote, but continuing..." - info "Remote set to: $REMOTE_URL" -else - info "Remote already configured: $REMOTE_EXISTS" -fi -set -e - -# Generate markdown file (always run this step) -generate_markdown - -# Commit and Push (non-critical, allow failures) -set +e -info "Committing markdown file..." -git add "$MARKDOWN_FILE" 2>/dev/null || warn "Failed to add markdown file" -git commit -m "GitLab metadata link commit at $TIMESTAMP โ€” $WEB_LINK/-/commit/$LATEST_SHA" 2>/dev/null || warn "No changes to commit" - -info "Pushing to GitLab..." -git push -u "$GIT_REMOTE_NAME" "$DEFAULT_BRANCH" 2>/dev/null || warn "Push to GitLab failed" -echo -e "\n๐Ÿ”— View in browser: $WEB_LINK\n" -set -e diff --git a/gitfield-radicle b/gitfield-radicle deleted file mode 100755 index 09fdc36..0000000 --- a/gitfield-radicle +++ /dev/null @@ -1,318 +0,0 @@ -#!/bin/bash -set -euo pipefail -IFS=$'\n\t' - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Config & Paths โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -PROJECT_NAME=$(basename "$(pwd)") -DEFAULT_NAME="Mark Randall Havens" -DEFAULT_EMAIL="mark.r.havens@gmail.com" -SCRIPT_VERSION="1.0" - -RAD_HOME="$HOME/.radicle" -RAD_BIN="$RAD_HOME/bin/rad" -RAD_PATH_LINE='export PATH="$HOME/.radicle/bin:$PATH"' -PROFILE_FILE="$HOME/.bashrc" -PUSH_STATE_FILE="$(git rev-parse --show-toplevel)/.gitfield/.radicle-push-state" -MARKDOWN_FILE="$(git rev-parse --show-toplevel)/.gitfield/radicle.sigil.md" -mkdir -p "$(dirname "$MARKDOWN_FILE")" -PUBLIC_GATEWAY="https://app.radicle.xyz/nodes/ash.radicle.garden" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Logging Utils โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info() { echo -e "\e[1;34m[INFO]\e[0m $*"; } -warn() { echo -e "\e[1;33m[WARN]\e[0m $*"; } -error() { echo -e "\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Git + Tools Precheck โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info "Checking Git..." -command -v git >/dev/null || { - info "Installing Git..." - sudo apt update && sudo apt install -y git || error "Failed to install Git" -} -info "Git version: $(git --version)" - -NAME=$(git config --global user.name || true) -EMAIL=$(git config --global user.email || true) -[[ -z "$NAME" || -z "$EMAIL" ]] && { - info "Setting Git identity..." - git config --global user.name "$DEFAULT_NAME" - git config --global user.email "$DEFAULT_EMAIL" -} -info "Git identity: $(git config --global user.name) <$(git config --global user.email)>" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Radicle CLI Setup โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if [ ! -x "$RAD_BIN" ]; then - info "Installing Radicle CLI..." - sudo apt install -y curl jq unzip || error "Missing dependencies" - curl -sSf https://radicle.xyz/install | sh || error "Radicle install failed" -fi -export PATH="$HOME/.radicle/bin:$PATH" -if ! grep -Fxq "$RAD_PATH_LINE" "$PROFILE_FILE"; then - echo "$RAD_PATH_LINE" >> "$PROFILE_FILE" - info "โ†’ Added PATH to $PROFILE_FILE" - warn "โ†’ Run 'source $PROFILE_FILE' for persistent CLI access" -fi -command -v rad >/dev/null || error "Radicle CLI unavailable. Restart terminal or check PATH." -info "Radicle CLI ready: $(rad --version)" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Radicle Identity Check โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info "Checking Radicle identity..." -RAD_SELF_OUTPUT=$(rad self 2>&1 || true) -if ! echo "$RAD_SELF_OUTPUT" | grep -q "DID"; then - info "Creating new Radicle identity..." - AUTH_OUTPUT=$(rad auth 2>&1) || error "Identity creation failed" - info "$AUTH_OUTPUT" -else - info "Radicle identity already exists." -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Start Rad Node โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if ! pgrep -f "rad node" >/dev/null; then - info "Starting Radicle node..." - rad node start || error "Failed to start Radicle node" -else - info "โœ“ Node is already running." -fi -info "Waiting for Radicle node to be ready..." -for i in {1..30}; do - if rad node status >/dev/null 2>&1; then - info "Radicle node is ready." - break - fi - sleep 1 -done -rad node status >/dev/null 2>&1 || error "Radicle node failed to start after 30s." - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Git Repo Initialization โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if [ ! -d .git ]; then - info "Initializing Git repository..." - git init - git add . || warn "Nothing to add" - git commit -m "Initial commit" || warn "Nothing to commit" -else - info "Git repo already initialized." -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Radicle Project Registrationโ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -if ! git remote | grep -q rad; then - info "Registering Radicle project '$PROJECT_NAME'..." - rad init --name "$PROJECT_NAME" --description "Radicle sovereign repo for $PROJECT_NAME" || error "Failed to initialize Radicle project" -else - info "Project '$PROJECT_NAME' already registered with Radicle." -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Extract Metadata โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -info "Extracting Radicle metadata..." -# Extract Project ID -PROJECT_ID=$(rad inspect | grep -o 'rad:[a-zA-Z0-9]\+' | cut -d':' -f2) -info "โ†’ Project ID from rad inspect: $PROJECT_ID" - -# Extract Peer ID -PEER_ID="" -# Try rad self first -if [[ -n "$RAD_SELF_OUTPUT" ]]; then - PEER_ID=$(echo "$RAD_SELF_OUTPUT" | grep -o 'z6M[a-zA-Z0-9]\+' || true) - info "โ†’ Peer ID from rad self: $PEER_ID" -fi -# If rad self didn't provide it, try AUTH_OUTPUT if it exists -if [[ -z "$PEER_ID" && -n "${AUTH_OUTPUT:-}" ]]; then - PEER_ID=$(echo "$AUTH_OUTPUT" | grep -o 'z6M[a-zA-Z0-9]\+' || true) - info "โ†’ Peer ID from rad auth: $PEER_ID" -fi -# If still empty, try rad node status as a last resort -if [[ -z "$PEER_ID" ]]; then - NODE_STATUS=$(rad node status 2>&1) - PEER_ID=$(echo "$NODE_STATUS" | grep -o 'z6M[a-zA-Z0-9]\+' || true) - info "โ†’ Peer ID from rad node status: $PEER_ID" -fi - -# Cross-check with Git remote -RAD_REMOTE=$(git remote -v | grep rad | head -n1 | awk '{print $2}' || true) -if [[ -n "$RAD_REMOTE" ]]; then - REMOTE_PROJECT_ID=$(echo "$RAD_REMOTE" | cut -d'/' -f3) - REMOTE_PEER_ID=$(echo "$RAD_REMOTE" | cut -d'/' -f4) - info "โ†’ Project ID from Git remote: $REMOTE_PROJECT_ID" - info "โ†’ Peer ID from Git remote: $REMOTE_PEER_ID" - [[ "$PROJECT_ID" != "$REMOTE_PROJECT_ID" ]] && warn "Project ID mismatch: rad inspect ($PROJECT_ID) vs remote ($REMOTE_PROJECT_ID)" - if [[ -z "$PEER_ID" && -n "$REMOTE_PEER_ID" ]]; then - PEER_ID="$REMOTE_PEER_ID" - info "โ†’ Using Peer ID from Git remote as fallback: $PEER_ID" - elif [[ -n "$REMOTE_PEER_ID" && "$PEER_ID" != "$REMOTE_PEER_ID" ]]; then - warn "Peer ID mismatch: rad self ($PEER_ID) vs remote ($REMOTE_PEER_ID)" - PEER_ID="$REMOTE_PEER_ID" # Prefer the remote Peer ID as it's part of the actual repo URL - info "โ†’ Using Peer ID from Git remote: $PEER_ID" - fi - PROJECT_ID="$REMOTE_PROJECT_ID" # Prefer the remote Project ID as it's the actual repo identifier -fi - -# Final validation -if [[ -z "$PROJECT_ID" || -z "$PEER_ID" ]]; then - error "Failed to determine Project ID ($PROJECT_ID) or Peer ID ($PEER_ID). Please check Radicle configuration." -fi -REPO_URN="rad://$PROJECT_ID" -info "โœ“ Metadata extracted successfully: Project ID: $PROJECT_ID, Peer ID: $PEER_ID" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Push Current Commit Logic โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -CURRENT_BRANCH=$(git symbolic-ref --short HEAD) -CURRENT_COMMIT=$(git rev-parse HEAD) -LAST_PUSHED_COMMIT=$(cat "$PUSH_STATE_FILE" 2>/dev/null || echo "none") - -if [[ "$CURRENT_COMMIT" == "$LAST_PUSHED_COMMIT" ]]; then - info "โœ“ Already pushed commit: $CURRENT_COMMIT" -else - info "Pushing commit '$CURRENT_COMMIT' on branch '$CURRENT_BRANCH'..." - if git push rad "$CURRENT_BRANCH"; then - echo "$CURRENT_COMMIT" > "$PUSH_STATE_FILE" - info "โœ“ Pushed to Radicle successfully" - else - warn "Push failed โ€” check 'rad sync status'" - error "Push failed, cannot proceed." - fi -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Git Metadata Snapshot โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -TIMESTAMP="$(date '+%Y-%m-%d %H:%M:%S')" -DEFAULT_BRANCH="$CURRENT_BRANCH" -REPO_PATH="$(git rev-parse --show-toplevel)" -LATEST_SHA="$CURRENT_COMMIT" -LAST_COMMIT_MSG=$(git log -1 --pretty=format:"%s") -LAST_COMMIT_DATE=$(git log -1 --pretty=format:"%ad") -LAST_COMMIT_AUTHOR=$(git log -1 --pretty=format:"%an <%ae>") -TOTAL_COMMITS=$(git rev-list --count HEAD) -TRACKED_FILES=$(git ls-files | wc -l) -UNCOMMITTED=$(git diff --quiet && git diff --cached --quiet && echo "No" || echo "Yes") -LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "None") -HOSTNAME=$(hostname) -CURRENT_USER=$(whoami) -TIMEZONE=$(date +%Z) - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Hardware + OS Fingerprint Block โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -OS_NAME=$(uname -s) -KERNEL_VERSION=$(uname -r) -ARCHITECTURE=$(uname -m) -OS_PRETTY_NAME=$(grep PRETTY_NAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"' || echo "Unknown") -DOCKER_CHECK=$(grep -qE '/docker|/lxc' /proc/1/cgroup 2>/dev/null && echo "Yes" || echo "No") -WSL_CHECK=$(grep -qi microsoft /proc/version 2>/dev/null && echo "Yes" || echo "No") -VM_CHECK=$(systemd-detect-virt 2>/dev/null || echo "Unknown") -UPTIME=$(uptime -p 2>/dev/null || echo "Unknown") -MAC_ADDR=$(ip link | awk '/ether/ {print $2}' | head -n 1 || echo "Unknown") -LOCAL_IP=$(hostname -I | awk '{print $1}' || echo "Unknown") -CPU_MODEL=$(grep -m1 'model name' /proc/cpuinfo | cut -d: -f2 | sed 's/^ //' || echo "Unknown") -RAM_GB=$(awk '/MemTotal/ {printf "%.2f", $2/1024/1024}' /proc/meminfo || echo "Unknown") - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ Write Rich Markdown Artifact โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -PUBLIC_GATEWAY_URL="$PUBLIC_GATEWAY/rad:$PROJECT_ID/tree/$LATEST_SHA" -cat > "$MARKDOWN_FILE" </dev/null || ! git ls-files "$MARKDOWN_FILE" --error-unmatch >/dev/null 2>&1; then - git add "$MARKDOWN_FILE" - git commit -m "Update Radicle metadata at $TIMESTAMP โ€” $PUBLIC_GATEWAY_URL" || warn "No changes to commit for $MARKDOWN_FILE" - if git push rad "$CURRENT_BRANCH"; then - echo "$CURRENT_COMMIT" > "$PUSH_STATE_FILE" - info "โœ“ Pushed metadata update to Radicle" - else - warn "Metadata push failed โ€” check 'rad sync status'" - fi -else - info "No changes to $MARKDOWN_FILE; skipping commit." -fi diff --git a/gitfield-sync b/gitfield-sync deleted file mode 100755 index 9301fb7..0000000 --- a/gitfield-sync +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/bash -set -euo pipefail -IFS=$'\n\t' - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ CONFIGURATION โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ -REPO_NAME=$(basename "$(pwd)") -REPO_PATH=$(git rev-parse --show-toplevel) -GITFIELD_DIR="$REPO_PATH/.gitfield" -LOG_FILE="$GITFIELD_DIR/pushed.log" -GITFIELD_MD="$REPO_PATH/GITFIELD.md" -TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') -SCRIPT_VERSION="1.0" - -# URLs for each platform (derived from existing scripts) -GITHUB_URL="https://github.com/mrhavens/$REPO_NAME" -GITLAB_URL="https://gitlab.com/mrhavens/$REPO_NAME" -BITBUCKET_URL="https://bitbucket.org/thefoldwithin/$REPO_NAME" -RADICLE_PROJECT_ID="z45QC21eWL1F43VSbnV9AZbCZrHQJ" # From gitfield-radicle output -RADICLE_URL="https://app.radicle.xyz/nodes/ash.radicle.garden/rad:$RADICLE_PROJECT_ID" - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ LOGGING UTILS โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -info() { echo -e "\e[1;34m[INFO]\e[0m $*"; } -warn() { echo -e "\e[1;33m[WARN]\e[0m $*"; } -error() { echo -e "\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ INITIAL SETUP โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# Ensure .gitfield directory exists -mkdir -p "$GITFIELD_DIR" - -# Initialize log file if it doesn't exist -if [ ! -f "$LOG_FILE" ]; then - echo "# Push Log for $REPO_NAME" > "$LOG_FILE" - echo "# Generated by gitfield-sync" >> "$LOG_FILE" - echo "" >> "$LOG_FILE" -fi - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ GENERATE GITFIELD.MD โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -generate_gitfield_md() { - info "Generating $GITFIELD_MD..." - cat > "$GITFIELD_MD" <> "$LOG_FILE" - info "Logged push to $LOG_FILE: [$timestamp] $platform: $url" -} - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ EXECUTE PUSH SCRIPT โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -execute_push() { - local script=$1 - local platform=$2 - local url=$3 - info "Running $script for $platform..." - if [ -x "$script" ]; then - ./"$script" || warn "Execution of $script failed, continuing..." - # Log the URL after successful push - log_url "$platform" "$url" - # Add and commit any new files generated by the script - git add . || warn "Nothing to add after $script" - git commit -m "Post-$platform sync at $TIMESTAMP" || warn "No changes to commit after $script" - else - error "Script $script is not executable or does not exist" - fi -} - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ RECURSIVE PUSH LOOP โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -run_push_cycle() { - local cycle_number=$1 - info "Starting push cycle $cycle_number..." - - # Push to each platform in order - execute_push "gitfield-radicle" "Radicle" "$RADICLE_URL" - execute_push "gitfield-gitlab" "GitLab" "$GITLAB_URL" - execute_push "gitfield-bitbucket" "Bitbucket" "$BITBUCKET_URL" - execute_push "gitfield-github" "GitHub" "$GITHUB_URL" -} - -# โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -# โ”‚ MAIN EXECUTION โ”‚ -# โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ -info "Starting gitfield-sync for $REPO_NAME..." - -# Ensure the repository is initialized -if [ ! -d .git ]; then - git init - git add . - git commit -m "Initial commit" || warn "Nothing to commit" -fi - -# Run the first push cycle -run_push_cycle 1 - -# Generate GITFIELD.md after the first cycle -generate_gitfield_md - -# Run the second push cycle to include GITFIELD.md -run_push_cycle 2 - -# Run the third push cycle for final metadata sync -run_push_cycle 3 - -info "โœ… gitfield-sync completed successfully." -info "๐Ÿ”— View logs: $LOG_FILE" -info "๐Ÿ”— View multi-repo manifest: $GITFIELD_MD" From 9950c70d53b33b042043a7f30dbb2c8fa10d8887 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Fri, 6 Jun 2025 13:11:07 -0500 Subject: [PATCH 09/10] Post-Radicle sync at 2025-06-06 12:58:25 --- .gitfield/pushed.log | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitfield/pushed.log b/.gitfield/pushed.log index 7295b05..6d1bd66 100644 --- a/.gitfield/pushed.log +++ b/.gitfield/pushed.log @@ -27,3 +27,6 @@ [2025-06-04 18:03:33] Bitbucket: https://bitbucket.org/thefoldwithin/NarcStudy_ElenaByron [2025-06-04 18:03:55] GitHub: https://github.com/mrhavens/NarcStudy_ElenaByron [2025-06-06 12:59:42] Local: +[2025-06-06 13:11:07] Radicle: RID=rad:z3FEj7rF8gZw9eFksCuiN43qjzrex, Peer ID=z6Mkw5s3ppo26C7y7tGK5MD8n2GqTHS582PPpeX5Xqbu2Mpz + CLI: rad inspect rad:z3FEj7rF8gZw9eFksCuiN43qjzrex # View project details + CLI: git ls-tree -r --name-only HEAD # View file structure From 778514579b10163b2c86e8c4501b82ba4165b4a1 Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Fri, 6 Jun 2025 13:11:11 -0500 Subject: [PATCH 10/10] =?UTF-8?q?Forgejo=20metadata=20link=20commit=20at?= =?UTF-8?q?=202025-06-06=2013:11:10=20=E2=80=94=20https://remember.thefold?= =?UTF-8?q?within.earth/mrhavens/NarcStudy=5FElenaByron/commit/9950c70d53b?= =?UTF-8?q?33b042043a7f30dbb2c8fa10d8887?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitfield/remember.sigil.md | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .gitfield/remember.sigil.md diff --git a/.gitfield/remember.sigil.md b/.gitfield/remember.sigil.md new file mode 100644 index 0000000..7915583 --- /dev/null +++ b/.gitfield/remember.sigil.md @@ -0,0 +1,59 @@ +# ๐Ÿ”— Forgejo Repository Link + +- **Repo Name**: `NarcStudy_ElenaByron` +- **Forgejo User**: `mrhavens` +- **Remote URL**: [https://remember.thefoldwithin.earth/mrhavens/NarcStudy_ElenaByron](https://remember.thefoldwithin.earth/mrhavens/NarcStudy_ElenaByron) +- **Local Repo Path**: `/home/mrhavens/narcwork/NarcStudy_ElenaByron` +- **Remote Label**: `remember` +- **Default Branch**: `main` +- **Repo Created**: `2025-06-06 13:11:10` + +--- + +## ๐Ÿ“ฆ Commit Info + +- **This Commit Timestamp**: `2025-06-06 13:11:10` +- **Last Commit SHA**: `9950c70d53b33b042043a7f30dbb2c8fa10d8887` +- **Last Commit Message**: `Post-Radicle sync at 2025-06-06 12:58:25` +- **Last Commit Author**: `Mark Randall Havens ` +- **Last Commit Date**: `Fri Jun 6 13:11:07 2025 -0500` +- **This Commit URL**: [https://remember.thefoldwithin.earth/mrhavens/NarcStudy_ElenaByron/commit/9950c70d53b33b042043a7f30dbb2c8fa10d8887](https://remember.thefoldwithin.earth/mrhavens/NarcStudy_ElenaByron/commit/9950c70d53b33b042043a7f30dbb2c8fa10d8887) + +--- + +## ๐Ÿ“Š Repo Status + +- **Total Commits**: `50` +- **Tracked Files**: `43` +- **Uncommitted Changes**: `No` +- **Latest Tag**: `None` + +--- + +## ๐Ÿงญ Environment + +- **Host Machine**: `DESKTOP-E5SGI58` +- **Current User**: `mrhavens` +- **Time Zone**: `CDT` +- **Script Version**: `1.0` + +--- + +## ๐Ÿงฌ Hardware & OS Fingerprint + +- **OS Name**: `Linux` +- **OS Version**: `Ubuntu 24.04.2 LTS` +- **Kernel Version**: `5.15.167.4-microsoft-standard-WSL2` +- **Architecture**: `x86_64` +- **Running in Docker**: `No` +- **Running in WSL**: `Yes` +- **Virtual Machine**: `wsl` +- **System Uptime**: `up 11 hours, 53 minutes` +- **MAC Address**: `00:15:5d:86:d8:cc` +- **Local IP**: `172.18.207.124` +- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics` +- **Total RAM (GB)**: `3.63` + +--- + +_Auto-generated by `gitfield-remember` push script._