OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-kb / convert_to_submodules.sh

84 lines · bash ref:
#!/bin/bash

# Convert cloned repos to git submodules

echo "🔄 Converting cloned repos to git submodules..."
echo ""

# Tier 1 repos
TIER1_REPOS=(
  "autobase"
  "hyperbee"
  "hypercore"
  "hyperdht"
  "hyperdrive"
  "hyperswarm"
)

# Tier 2 repos
TIER2_REPOS=(
  "compact-encoding"
  "corestore"
  "hyperswarm-secret-stream"
  "localdrive"
  "mirror-drive"
  "protomux"
)

# Process Tier 1
echo "📦 Processing Tier 1 (Building Blocks)..."
for repo in "${TIER1_REPOS[@]}"; do
  echo "  Converting $repo..."

  # Remove the cloned directory
  rm -rf "repos/tier1/$repo"

  # Add as submodule
  git submodule add "https://github.com/holepunchto/$repo.git" "repos/tier1/$repo" 2>/dev/null

  if [ $? -eq 0 ]; then
    echo "  ✓ $repo added as submodule"
  else
    echo "  ⚠ $repo may already be a submodule or failed"
  fi
done

echo ""
echo "📦 Processing Tier 2 (Helpers)..."
for repo in "${TIER2_REPOS[@]}"; do
  echo "  Converting $repo..."

  # Remove the cloned directory
  rm -rf "repos/tier2/$repo"

  # Add as submodule
  git submodule add "https://github.com/holepunchto/$repo.git" "repos/tier2/$repo" 2>/dev/null

  if [ $? -eq 0 ]; then
    echo "  ✓ $repo added as submodule"
  else
    echo "  ⚠ $repo may already be a submodule or failed"
  fi
done

echo ""
echo "📦 Processing pear-docs..."
# Also convert pear-docs/pear-docs-repo to a submodule at pear-docs/
rm -rf pear-docs/pear-docs-repo
if [ ! -d "pear-docs/.git" ]; then
  git submodule add "https://github.com/holepunchto/pear-docs.git" "pear-docs" 2>/dev/null
  if [ $? -eq 0 ]; then
    echo "  ✓ pear-docs added as submodule"
  else
    echo "  ⚠ pear-docs may already be a submodule or failed"
  fi
else
  echo "  ✓ pear-docs already a submodule"
fi

echo ""
echo "✅ Conversion complete!"
echo ""
echo "📋 Summary:"
git submodule status