Add publish.md
This commit is contained in:
parent
182685625b
commit
4bdc4c680a
79
publish.md
Normal file
79
publish.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Publish
|
||||
|
||||
Application for publishing packages to the gitea package server.
|
||||
|
||||
Hardcoded my credentials and URLS's. It's a kinda note for myself but if others can learn from it, it's fine by me.
|
||||
|
||||
I've copied this to my `/usr/local/bin/` and can just execute publish [filename] where ever i want.
|
||||
|
||||
## Usage
|
||||
Will overwrite version 1.0.0 from the server, else will create a new one with version 1.0.0.
|
||||
```
|
||||
publish [filename]
|
||||
```
|
||||
Or with version parameter:
|
||||
```
|
||||
publish [filename] --version=1.33.7
|
||||
```
|
||||
|
||||
## Source code
|
||||
```python
|
||||
#!/usr/bin/env python
|
||||
|
||||
import logging
|
||||
logging.basicConfig(
|
||||
level=logging.DEBUG,
|
||||
format='%(asctime)s - %(levelname)s - %(message)s',
|
||||
)
|
||||
log = logging.getLogger("publish")
|
||||
|
||||
import env
|
||||
import sys
|
||||
import pathlib
|
||||
import os
|
||||
import argparse
|
||||
import subprocess
|
||||
parser = argparse.ArgumentParser(description="Application for deploying packages at molodetz.nl.")
|
||||
parser.add_argument("file", type=str, help="File you want to publish.")
|
||||
parser.add_argument("--version", type=str, required=False, default="1.0.0", help="Version of your package")
|
||||
args = parser.parse_args()
|
||||
|
||||
if not len(args.version.split(".")) == 3:
|
||||
raise Exception("{} is an invalid version number. It shoud be in '\\d.\\d.\\d.' format.".format(args.version))
|
||||
|
||||
version = args.version
|
||||
|
||||
path = pathlib.Path(args.file)
|
||||
if not path.exists():
|
||||
log.error("Path does not exist: '{}'.".format(path))
|
||||
exit(1)
|
||||
|
||||
file_name = path.name
|
||||
|
||||
username = "retoor"
|
||||
password = env.secret
|
||||
package_name = path.name
|
||||
|
||||
command_delete = " ".join([
|
||||
f"curl --user {username}:{password}",
|
||||
f"-X DELETE",
|
||||
f"https://retoor.molodetz.nl/api/packages/{username}/generic/{package_name}/{version}/{file_name}",
|
||||
"--silent"
|
||||
])
|
||||
|
||||
command = " ".join([
|
||||
f"curl --user {username}:{password}",
|
||||
f"--upload-file {path}",
|
||||
f"https://retoor.molodetz.nl/api/packages/{username}/generic/{package_name}/{version}/{file_name}",
|
||||
"--silent"
|
||||
])
|
||||
log.info("Publishing package {} {}.".format(package_name, version))
|
||||
log.warning("Deleting original package with version {} if exists.".format(version))
|
||||
subprocess.check_output(command_delete, shell=True)
|
||||
subprocess.check_output(command,shell=True)
|
||||
log.info("Publishing package {} {} success.".format(package_name, version))
|
||||
log.info("Download package using curl -OJ https://retoor.molodetz.nl/api/packages/retoor/generic/{}/1.0.0/{} --silent.".format(package_name, package_name))
|
||||
log.info("or download package using wget https://retoor.molodetz.nl/api/packages/retoor/generic/{}/1.0.0/{} --quiet.".format(package_name, package_name))
|
||||
log.info("Don't forget to chmod +x after downloading the package if it is executable.")
|
||||
|
||||
```
|
Loading…
Reference in New Issue
Block a user