v0.2.22
🚀 Release v0.2.22
Automated release via git_op.sh
📄 conduit-optimizer.sh
- Documentation: Updated
-hto include detailed descriptions and usage examples. - Standard: Aligned with new CLI standards (Detailed Help).
📄 docs/AI_DEV_GUIDELINES.md
- Type: Description of change...
📄 git_op.sh
if [[ -n "$notes" ]]; then
release_body="${release_body}"$'\n### 📄 '"$file"$'\n'"$notes"$'\n'
fi
done < <(git grep -l "<component_release_notes>")
git commit -m "release: $target_tag (Docs Updated)"
check_error
echo ">> Pushing to $target_branch..."
git push origin "$target_branch"
check_error
echo ">> Pushing tag..."
git tag -a "$target_tag" -m "Release $target_tag"
git push origin "$target_tag"
check_error
if command -v gh &> /dev/null; then
gh release create "$target_tag" --title "$target_tag" --notes "$release_body"
echo -e "${GREEN}✅ Released on GitHub!${NC}"
else
echo -e "${YELLOW}GitHub CLI missing. Local release only.${NC}"
fi
# If we switched to main, stay there? Or go back? Usually staying on main is safer after release.
# If users want to go back, they can checkout dev again.
}
--- MAIN EXECUTION ---
if [[ $# -eq 0 ]]; then
# No args -> Release on CURRENT branch
command_release "current"
exit 0
fi
if [[ "$1" == "main" ]]; then
# Main arg -> Merge to MAIN and release
command_release "main"
exit 0
fi
while [[ $# -gt 0 ]]; do
case "$1" in
-h|--help) show_help; exit 0 ;;
-ver) show_version; exit 0 ;;
-l|--list) command_list_status; exit 0 ;;
-d)
shift
files_to_delete=()
while [[ $# -gt 0 && ! "$1" =~ ^- ]]; do files_to_delete+=("$1"); shift; done
command_delete_files "${files_to_delete[@]}"
;;
-no)
shift; while [[ $# -gt 0 && ! "$1" =~ ^- ]]; do command_deny_file "$1"; shift; done
;;
-yes)
shift; while [[ $# -gt 0 && ! "$1" =~ ^- ]]; do command_allow_file "$1"; shift; done
;;
*) echo -e "${RED}Unknown option:
esac