Automated update
This commit is contained in:
@@ -134,36 +134,44 @@ create_github_repo() {
|
|||||||
local repo_number="$3"
|
local repo_number="$3"
|
||||||
echo "Attempting to create GitHub repo for repo $repo_number ($repo_name)" >> "$REPORT"
|
echo "Attempting to create GitHub repo for repo $repo_number ($repo_name)" >> "$REPORT"
|
||||||
log_msg "Creating GitHub repository for repo $repo_number ($repo_name) using source: $repo_dir"
|
log_msg "Creating GitHub repository for repo $repo_number ($repo_name) using source: $repo_dir"
|
||||||
if gh repo create "$repo_name" --public --source="$repo_dir" --remote=origin --push; then
|
|
||||||
|
# Attempt to create the repository via gh.
|
||||||
|
# Capture the output and exit code.
|
||||||
|
local gh_output
|
||||||
|
if gh_output=$(gh repo create "$repo_name" --public --source="$repo_dir" --remote=origin --push 2>&1); then
|
||||||
echo "Successfully created GitHub repository #$repo_number: $repo_name" >> "$REPORT"
|
echo "Successfully created GitHub repository #$repo_number: $repo_name" >> "$REPORT"
|
||||||
echo "Repo #$repo_number $repo_name: GHS" >> "$SMS_REPORT"
|
echo "Repo #$repo_number $repo_name: GHS" >> "$SMS_REPORT"
|
||||||
echo "Success GHS"
|
echo "Success GHS"
|
||||||
log_msg "GitHub repository $repo_name created successfully."
|
log_msg "GitHub repository $repo_name created successfully."
|
||||||
if [ -d "$repo_dir/.git" ] && [ "$(git -C "$repo_dir" rev-parse HEAD)" ]; then
|
|
||||||
echo "Repository #$repo_number has existing commits. Attempting to add remote and push." >> "$REPORT"
|
|
||||||
log_msg "Repository $repo_name has commits; adding remote and pushing."
|
|
||||||
git remote add origin "git@github.com:kleinpanic/$repo_name.git" 2>/dev/null || true
|
|
||||||
git branch -M main
|
|
||||||
if git push -u origin main; then
|
|
||||||
echo "Existing repository #$repo_number pushed successfully to GitHub." >> "$REPORT"
|
|
||||||
echo "Repo #$repo_number: PS" >> "$SMS_REPORT"
|
|
||||||
echo "Repo PS"
|
|
||||||
log_msg "Existing repository $repo_name pushed successfully."
|
|
||||||
else
|
|
||||||
echo "Failed to push the existing repository #$repo_number to GitHub." >> "$REPORT"
|
|
||||||
echo "Repo #$repo_number: PF" >> "$SMS_REPORT"
|
|
||||||
echo "Repo PF"
|
|
||||||
log_msg "Push failed for repository $repo_name."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
else
|
else
|
||||||
echo "Failed to create GitHub repository #$repo_number: $repo_name" >> "$REPORT"
|
# Check if the output indicates that the repository already exists.
|
||||||
echo "Repo #$repo_number: GCF" >> "$SMS_REPORT"
|
if echo "$gh_output" | grep -qi "already exists"; then
|
||||||
echo "GCF Repo"
|
echo "Repository $repo_name already exists on GitHub." >> "$REPORT"
|
||||||
log_msg "Failed to create GitHub repository $repo_name."
|
log_msg "Repository $repo_name already exists on GitHub. Will attempt to add remote."
|
||||||
return 1
|
else
|
||||||
|
echo "Failed to create GitHub repository #$repo_number: $repo_name" >> "$REPORT"
|
||||||
|
echo "Repo #$repo_number: GCF" >> "$SMS_REPORT"
|
||||||
|
echo "GCF Repo"
|
||||||
|
log_msg "Failed to create GitHub repository $repo_name. gh output: $gh_output"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# In either case, try to set the remote URL.
|
||||||
|
git remote add origin "git@github.com:kleinpanic/$repo_name.git" 2>/dev/null || true
|
||||||
|
git branch -M main
|
||||||
|
if git push -u origin main; then
|
||||||
|
echo "Existing repository #$repo_number pushed successfully to GitHub." >> "$REPORT"
|
||||||
|
echo "Repo #$repo_number: PS" >> "$SMS_REPORT"
|
||||||
|
echo "Repo PS"
|
||||||
|
log_msg "Existing repository $repo_name pushed successfully."
|
||||||
|
else
|
||||||
|
echo "Failed to push the existing repository #$repo_number to GitHub." >> "$REPORT"
|
||||||
|
echo "Repo #$repo_number: PF" >> "$SMS_REPORT"
|
||||||
|
echo "Repo PF"
|
||||||
|
log_msg "Push failed for repository $repo_name."
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
check_github_remote() {
|
check_github_remote() {
|
||||||
@@ -273,7 +281,6 @@ update_repo() {
|
|||||||
log_msg "Repo #$repo_number: Attempting to add remote manually for $repo_name."
|
log_msg "Repo #$repo_number: Attempting to add remote manually for $repo_name."
|
||||||
# Try adding the remote manually.
|
# Try adding the remote manually.
|
||||||
git remote add origin "git@github.com:kleinpanic/$repo_name.git" 2>/dev/null || true
|
git remote add origin "git@github.com:kleinpanic/$repo_name.git" 2>/dev/null || true
|
||||||
# Check again if the remote now exists.
|
|
||||||
if check_github_remote; then
|
if check_github_remote; then
|
||||||
remote_available=true
|
remote_available=true
|
||||||
log_msg "Repo #$repo_number: Remote added manually."
|
log_msg "Repo #$repo_number: Remote added manually."
|
||||||
@@ -288,11 +295,13 @@ update_repo() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
log_msg "Repo #$repo_number: No WiFi. Cannot create or add remote."
|
log_msg "Repo #$repo_number: No WiFi. Cannot add or create remote."
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
log_msg "Repo #$repo_number: Valid GitHub remote exists."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If no local changes, log and return.
|
# If no local changes exist, log and exit.
|
||||||
if [ -z "$(git status --porcelain)" ]; then
|
if [ -z "$(git status --porcelain)" ]; then
|
||||||
log_msg "Repo #$repo_number: No local changes detected."
|
log_msg "Repo #$repo_number: No local changes detected."
|
||||||
if [ "$remote_available" = false ]; then
|
if [ "$remote_available" = false ]; then
|
||||||
@@ -304,9 +313,11 @@ update_repo() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Stage and commit local changes.
|
# Stage all changes.
|
||||||
log_msg "Repo #$repo_number: Staging all changes."
|
log_msg "Repo #$repo_number: Staging all changes."
|
||||||
git add -A
|
git add -A
|
||||||
|
|
||||||
|
# Commit changes.
|
||||||
if git -c commit.gpgSign=false commit -m "Automated update"; then
|
if git -c commit.gpgSign=false commit -m "Automated update"; then
|
||||||
log_msg "Repo #$repo_number: Local commit succeeded."
|
log_msg "Repo #$repo_number: Local commit succeeded."
|
||||||
else
|
else
|
||||||
@@ -332,7 +343,7 @@ update_repo() {
|
|||||||
log_msg "Repo #$repo_number: Skipping pull/rebase (no remote or no internet)."
|
log_msg "Repo #$repo_number: Skipping pull/rebase (no remote or no internet)."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Push if remote exists and WiFi is available.
|
# Push changes if remote exists and WiFi is available.
|
||||||
if [ "$remote_available" = true ] && check_wifi; then
|
if [ "$remote_available" = true ] && check_wifi; then
|
||||||
log_msg "Repo #$repo_number: Attempting push on branch 'main'."
|
log_msg "Repo #$repo_number: Attempting push on branch 'main'."
|
||||||
if timeout 60s git push origin main; then
|
if timeout 60s git push origin main; then
|
||||||
|
|||||||
Reference in New Issue
Block a user