Skip to content

Commit

Permalink
Make installable
Browse files Browse the repository at this point in the history
  • Loading branch information
BoxingOctopus committed Apr 19, 2021
1 parent 87f7ac2 commit a27081c
Show file tree
Hide file tree
Showing 9 changed files with 224 additions and 23 deletions.
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM python:alpine3.9

RUN mkdir -p /src
COPY . /src
WORKDIR /src
RUN python setup.py install
RUN chmod +x /src/entrypoint.sh

ENTRYPOINT ["/src/entrypoint.sh"]
8 changes: 4 additions & 4 deletions Pipfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[[source]]
url = "https://pypi.org/simple"
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
name = "pypi"

[packages]

click = "7.1.2"
click = "7.1.2"
requests = "2.25.1"

[dev-packages]
twine = "*"

[requires]
python_version = "3.9"
133 changes: 132 additions & 1 deletion Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 18 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,35 @@ Giteo is a CLI-based URL shortener written in Python which uses GitHub's [git.io

## Getting Started <a name = "getting_started"></a>

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See [deployment](#deployment) for notes on how to deploy the project on a live system.
These instructions will get you a copy of the project up and running on your local machine.

### Prerequisites

What things you need to install the software and how to install them.
- Python 3.7+
- Pipenv
- Docker (Optional)

```
Give examples
```
### Development Setup

1. Fork this repo
2. Set up your Pipenv environment (`pipenv install`)
3. Set up your Docker environment (`docker build -t giteo:latest .`) (Optional)

### Installing

A step by step series of examples that tell you how to get a development env running.
#### Bare Metal Install

Say what the step will be
`pip install giteo`

```
Give the example
```
#### Docker Install

And repeat
`docker pull TuxOtaku/giteo:latest`

```
until finished
```
## Usage <a name = "usage"></a>

End with an example of getting some data out of the system or using it for a little demo.
### Bare Metal

## Usage <a name = "usage"></a>
`giteo --url <url_to_be_shortened> --code <shortened_url_suffix>`

Add notes about how to use the system.
### Docker
`docker run --rm TuxOtaku/giteo:latest --url <url_to_be_shortened> --code <shortened_url_suffix>`
3 changes: 3 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

/usr/local/bin/giteo $@
Empty file added giteo/__init__.py
Empty file.
5 changes: 4 additions & 1 deletion giteo.py → giteo/__main__.py
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ def print_help(ctx, value):
def giteo(ctx, url=None, code=None):

r = requests.post(f"https://git.io?url={url}&code={code}")
print(r.text)
if r.status_code == 200:
print(r.text)
else:
raise Exception("Bad Request")

if __name__ == "__main__":
giteo()
6 changes: 6 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
certifi==2020.12.5
chardet==4.0.0
click==7.1.2
idna==2.10
requests==2.25.1
urllib3==1.26.4
48 changes: 48 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from setuptools import setup, find_packages
from io import open
from os import path
import pathlib

# The directory containing this file
HERE = pathlib.Path(__file__).parent

# The text of the README file
README = (HERE / "README.md").read_text()

# automatically captured required modules for install_requires in requirements.txt and as well as configure dependency links
with open(path.join(HERE, 'requirements.txt'), encoding='utf-8') as f:
all_reqs = f.read().split('\n')

install_requires = [x.strip() for x in all_reqs if ('git+' not in x) and (
not x.startswith('#')) and (not x.startswith('-'))]

dependency_links = [x.strip().replace('git+', '') for x in all_reqs if 'git+' not in x]

setup (
name = 'giteo',
description = 'Giteo: A CLI Client for GitHub\'s Git.io URL Shortener',
version = '1.0.0',
packages = find_packages(), # list of all packages
install_requires = install_requires,
python_requires = '>=3.7', # any python greater than 3.7
entry_points = '''
[console_scripts]
giteo=giteo.__main__:giteo
''',
author = "Ryan Draga",
keyword = "git, github, url_shortener",
long_description = README,
long_description_content_type = "text/markdown",
license = 'Apache-2.0',
url = 'https://github.com/BoxingOctopus/giteo',
download_url = 'https://github.com/BoxingOctopus/giteo/archive/1.0.0.tar.gz',
dependency_links = dependency_links,
author_email = 'ryan.draga@boxingoctop.us',
classifiers = [
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
]
)

0 comments on commit a27081c

Please sign in to comment.