Skip to content

Commit

Permalink
fix: correct lint issues and show errors on lint
Browse files Browse the repository at this point in the history
  • Loading branch information
josegonzalez committed Dec 9, 2023
1 parent b52d9bf commit 3b0c08c
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 32 deletions.
10 changes: 5 additions & 5 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Using PIP via Github (more likely the latest version)::
Python scripts are unlikely to be included in your ``$PATH`` by default, this means it cannot be run directly in terminal with ``$ github-backup ...``, you can either add python's install path to your environments ``$PATH`` or call the script directly e.g. using ``$ ~/.local/bin/github-backup``.*

Basic Help
===========
==========

Show the CLI help output::

Expand Down Expand Up @@ -220,7 +220,7 @@ Cloning all starred size
Using the ``--all-starred`` argument to clone all starred repositories may use a large amount of storage space, especially if ``--all`` or more arguments are used. e.g. commonly starred repos can have tens of thousands of issues, many large assets and the repo itself etc. Consider just storing links to starred repos in JSON format with ``--starred``.

Incremental Backup
-------------------
------------------

Using (``-i, --incremental``) will only request new data from the API **since the last run (successful or not)**. e.g. only request issues from the API since the last run.

Expand Down Expand Up @@ -249,7 +249,7 @@ It's therefore recommended to only use the incremental argument if the output/re


"bare" is actually "mirror"
--------------------------
---------------------------

Using the bare clone argument (``--bare``) will actually call git's ``clone --mirror`` command. There's a subtle difference between `bare <https://www.git-scm.com/docs/git-clone#Documentation/git-clone.txt---bare>`_ and `mirror <https://www.git-scm.com/docs/git-clone#Documentation/git-clone.txt---mirror>`_ clone.

Expand All @@ -263,13 +263,13 @@ The starred normal repo cloning (``--all-starred``) argument stores starred repo


Skip existing on incomplete backups
-------------------------------------------------------
-----------------------------------

The ``--skip-existing`` argument will skip a backup if the directory already exists, even if the backup in that directory failed (perhaps due to a blocking error). This may result in unexpected missing data in a regular backup.


Github Backup Examples
========
======================

Backup all repositories, including private ones using a classic token::

Expand Down
57 changes: 30 additions & 27 deletions release
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $RELEASE_TRACE ]] && set -x
set -eo pipefail
[[ $RELEASE_TRACE ]] && set -x

if [[ ! -f setup.py ]]; then
echo -e "${RED}WARNING: Missing setup.py${COLOR_OFF}\n"
exit 1
echo -e "${RED}WARNING: Missing setup.py${COLOR_OFF}\n"
exit 1
fi

PACKAGE_NAME="$(cat setup.py | grep 'name="' | head | cut -d '"' -f2)"
INIT_PACKAGE_NAME="$(echo "${PACKAGE_NAME//-/_}")"
PUBLIC="true"

# Colors
COLOR_OFF="\033[0m" # unsets color to term fg color
RED="\033[0;31m" # red
GREEN="\033[0;32m" # green
YELLOW="\033[0;33m" # yellow
MAGENTA="\033[0;35m" # magenta
CYAN="\033[0;36m" # cyan
COLOR_OFF="\033[0m" # unsets color to term fg color
RED="\033[0;31m" # red
GREEN="\033[0;32m" # green
YELLOW="\033[0;33m" # yellow
MAGENTA="\033[0;35m" # magenta
CYAN="\033[0;36m" # cyan

# ensure wheel is available
pip install wheel > /dev/null
pip install wheel >/dev/null

command -v gitchangelog >/dev/null 2>&1 || {
echo -e "${RED}WARNING: Missing gitchangelog binary, please run: pip install gitchangelog==3.0.4${COLOR_OFF}\n"
exit 1
}

command -v rst-lint > /dev/null || {
command -v rst-lint >/dev/null || {
echo -e "${RED}WARNING: Missing rst-lint binary, please run: pip install restructuredtext_lint${COLOR_OFF}\n"
exit 1
}

command -v twine > /dev/null || {
command -v twine >/dev/null || {
echo -e "${RED}WARNING: Missing twine binary, please run: pip install twine==3.2.0${COLOR_OFF}\n"
exit 1
}
Expand All @@ -43,41 +44,41 @@ fi

echo -e "\n${GREEN}STARTING RELEASE PROCESS${COLOR_OFF}\n"

set +e;
git status | grep -Eo "working (directory|tree) clean" &> /dev/null
set +e
git status | grep -Eo "working (directory|tree) clean" &>/dev/null
if [ ! $? -eq 0 ]; then # working directory is NOT clean
echo -e "${RED}WARNING: You have uncomitted changes, you may have forgotten something${COLOR_OFF}\n"
exit 1
fi
set -e;
set -e

echo -e "${YELLOW}--->${COLOR_OFF} Updating local copy"
git pull -q origin master

echo -e "${YELLOW}--->${COLOR_OFF} Retrieving release versions"

current_version=$(cat ${INIT_PACKAGE_NAME}/__init__.py |grep '__version__ ='|sed 's/[^0-9.]//g')
current_version=$(cat ${INIT_PACKAGE_NAME}/__init__.py | grep '__version__ =' | sed 's/[^0-9.]//g')
major=$(echo $current_version | awk '{split($0,a,"."); print a[1]}')
minor=$(echo $current_version | awk '{split($0,a,"."); print a[2]}')
patch=$(echo $current_version | awk '{split($0,a,"."); print a[3]}')

if [[ "$@" == "major" ]]; then
major=$(($major + 1));
major=$(($major + 1))
minor="0"
patch="0"
elif [[ "$@" == "minor" ]]; then
minor=$(($minor + 1));
minor=$(($minor + 1))
patch="0"
elif [[ "$@" == "patch" ]]; then
patch=$(($patch + 1));
patch=$(($patch + 1))
fi

next_version="${major}.${minor}.${patch}"

echo -e "${YELLOW} >${COLOR_OFF} ${MAGENTA}${current_version}${COLOR_OFF} -> ${MAGENTA}${next_version}${COLOR_OFF}"
echo -e "${YELLOW} >${COLOR_OFF} ${MAGENTA}${current_version}${COLOR_OFF} -> ${MAGENTA}${next_version}${COLOR_OFF}"

echo -e "${YELLOW}--->${COLOR_OFF} Ensuring readme passes lint checks (if this fails, run rst-lint)"
rst-lint README.rst > /dev/null
rst-lint README.rst || exit 1

echo -e "${YELLOW}--->${COLOR_OFF} Creating necessary temp file"
tempfoo=$(basename $0)
Expand All @@ -90,23 +91,25 @@ find_this="__version__ = \"$current_version\""
replace_with="__version__ = \"$next_version\""

echo -e "${YELLOW}--->${COLOR_OFF} Updating ${INIT_PACKAGE_NAME}/__init__.py"
sed "s/$find_this/$replace_with/" ${INIT_PACKAGE_NAME}/__init__.py > $TMPFILE && mv $TMPFILE ${INIT_PACKAGE_NAME}/__init__.py
sed "s/$find_this/$replace_with/" ${INIT_PACKAGE_NAME}/__init__.py >$TMPFILE && mv $TMPFILE ${INIT_PACKAGE_NAME}/__init__.py

if [ -f docs/conf.py ]; then
echo -e "${YELLOW}--->${COLOR_OFF} Updating docs"
find_this="version = '${current_version}'"
replace_with="version = '${next_version}'"
sed "s/$find_this/$replace_with/" docs/conf.py > $TMPFILE && mv $TMPFILE docs/conf.py
sed "s/$find_this/$replace_with/" docs/conf.py >$TMPFILE && mv $TMPFILE docs/conf.py

find_this="version = '${current_version}'"
replace_with="release = '${next_version}'"
sed "s/$find_this/$replace_with/" docs/conf.py > $TMPFILE && mv $TMPFILE docs/conf.py
sed "s/$find_this/$replace_with/" docs/conf.py >$TMPFILE && mv $TMPFILE docs/conf.py
fi

echo -e "${YELLOW}--->${COLOR_OFF} Updating CHANGES.rst for new release"
version_header="$next_version ($(date +%F))"
set +e; dashes=$(yes '-'|head -n ${#version_header}|tr -d '\n') ; set -e
gitchangelog |sed "4s/.*/$version_header/"|sed "5s/.*/$dashes/" > $TMPFILE && mv $TMPFILE CHANGES.rst
set +e
dashes=$(yes '-' | head -n ${#version_header} | tr -d '\n')
set -e
gitchangelog | sed "4s/.*/$version_header/" | sed "5s/.*/$dashes/" >$TMPFILE && mv $TMPFILE CHANGES.rst

echo -e "${YELLOW}--->${COLOR_OFF} Adding changed files to git"
git add CHANGES.rst README.rst ${INIT_PACKAGE_NAME}/__init__.py
Expand All @@ -124,7 +127,7 @@ git push -q origin master && git push -q --tags
if [[ "$PUBLIC" == "true" ]]; then
echo -e "${YELLOW}--->${COLOR_OFF} Creating python release"
cp README.rst README
python setup.py sdist bdist_wheel > /dev/null
python setup.py sdist bdist_wheel >/dev/null
twine upload dist/*
rm README
fi
Expand Down

0 comments on commit 3b0c08c

Please sign in to comment.