1+ #! /bin/bash
2+
3+ # Initialize dry run flag
4+ DRY_RUN=0
5+
6+ # Function to build the package
7+ build_package () {
8+ echo " Building package..."
9+ python3 -m pip install --upgrade build
10+ python3 -m build
11+ }
12+
13+ # Function to upload the package
14+ upload_package () {
15+ echo " Uploading package..."
16+ python3 -m pip install --upgrade twine
17+ python3 -m twine upload --repository testpypi dist/* --verbose
18+ }
19+
20+ # Function to bump patch version
21+ bump_patch () {
22+ if [ $DRY_RUN -eq 1 ]; then
23+ echo " Bumping patch version (dry run)..."
24+ bumpver update --patch --dry
25+ else
26+ echo " Bumping patch version..."
27+ bumpver update --patch
28+ fi
29+ }
30+
31+ # Function to bump minor version
32+ bump_minor () {
33+ if [ $DRY_RUN -eq 1 ]; then
34+ echo " Bumping minor version (dry run)..."
35+ bumpver update --minor --dry
36+ else
37+ echo " Bumping minor version..."
38+ bumpver update --minor
39+ fi
40+ }
41+
42+ # Function to bump major version
43+ bump_major () {
44+ if [ $DRY_RUN -eq 1 ]; then
45+ echo " Bumping major version (dry run)..."
46+ bumpver update --major --dry
47+ else
48+ echo " Bumping major version..."
49+ bumpver update --major
50+ fi
51+ }
52+
53+ # Function to show current version
54+ show_version () {
55+ echo " Current version:"
56+ bumpver show
57+ }
58+
59+ # Check command line arguments
60+ if [ $# -eq 0 ]; then
61+ echo " Usage: $0 [-b|-u|-p|-n|-j|-v] [-d]"
62+ echo " -b: Build the package"
63+ echo " -u: Upload the package"
64+ echo " -p: Bump patch version"
65+ echo " -n: Bump minor version"
66+ echo " -j: Bump major version"
67+ echo " -v: Show current version"
68+ echo " -d: Dry run mode (use with -p, -n, or -j)"
69+ exit 1
70+ fi
71+
72+ # Process command line arguments
73+ while getopts " bubpnjvd" opt; do
74+ case $opt in
75+ b)
76+ build_package
77+ ;;
78+ u)
79+ upload_package
80+ ;;
81+ p)
82+ bump_patch
83+ ;;
84+ n)
85+ bump_minor
86+ ;;
87+ j)
88+ bump_major
89+ ;;
90+ v)
91+ show_version
92+ ;;
93+ d)
94+ DRY_RUN=1
95+ ;;
96+ \? )
97+ echo " Invalid option: -$OPTARG "
98+ exit 1
99+ ;;
100+ esac
101+ done
0 commit comments