mirror of
https://github.com/zigzap/zap.git
synced 2025-10-21 07:34:08 +00:00
added auto readme update, announceybot fixes
This commit is contained in:
parent
b8e00f3a72
commit
27ab749281
5 changed files with 126 additions and 28 deletions
12
README.md
12
README.md
|
@ -143,21 +143,24 @@ With an existing zig project, adding zap to it is easy:
|
||||||
|
|
||||||
To add zap to `build.zig.zon`:
|
To add zap to `build.zig.zon`:
|
||||||
|
|
||||||
|
<!-- INSERT_DEP_BEGIN -->
|
||||||
```zig
|
```zig
|
||||||
.{
|
.{
|
||||||
.name = "myapp",
|
.name = "My example project",
|
||||||
.version = "0.0.1",
|
.version = "0.0.1",
|
||||||
|
|
||||||
.dependencies = .{
|
.dependencies = .{
|
||||||
// zap release-0.0.24
|
// zap release-0.0.23
|
||||||
.zap = .{
|
.zap = .{
|
||||||
.url = "https://github.com/zigzap/zap/archive/refs/tags/release-0.0.24.tar.gz",
|
.url = "https://github.com/zigzap/zap/archive/refs/tags/release-0.0.23.tar.gz",
|
||||||
.hash = "1220f520fcdd4b3adbca918deeb42f512f7ef4a827680eea8af9abc64b90ed7a5e78",
|
.hash = "122001f1a749bdeba74be3e89f60730aa630c5e706eba1d7f91e225a87429005cffc",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- INSERT_DEP_END -->
|
||||||
|
|
||||||
Then, in your `build.zig`'s `build` function, add the following before
|
Then, in your `build.zig`'s `build` function, add the following before
|
||||||
`b.installArtifact(exe)``:
|
`b.installArtifact(exe)``:
|
||||||
|
|
||||||
|
@ -316,4 +319,3 @@ pub fn main() !void {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import sys
|
||||||
import os
|
import os
|
||||||
from discord_webhook import DiscordWebhook
|
from discord_webhook import DiscordWebhook
|
||||||
from git import Repo
|
from git import Repo
|
||||||
|
import subprocess
|
||||||
|
|
||||||
URL = os.getenv("WEBHOOK_URL")
|
URL = os.getenv("WEBHOOK_URL")
|
||||||
TAG_NAME = os.getenv("TAG_NAME", sys.argv[1])
|
TAG_NAME = os.getenv("TAG_NAME", sys.argv[1])
|
||||||
|
@ -17,17 +18,36 @@ def send_to_discord(message):
|
||||||
|
|
||||||
|
|
||||||
def get_tag_annotation(tagname):
|
def get_tag_annotation(tagname):
|
||||||
repo = Repo('../..')
|
repo = Repo('.')
|
||||||
tag = repo.tags[tagname]
|
tag = repo.tags[tagname]
|
||||||
return tag.tag.message
|
return tag.tag.message
|
||||||
|
|
||||||
|
|
||||||
|
def get_replacement():
|
||||||
|
ret = subprocess.run([
|
||||||
|
"./zig-out/bin/pkghash",
|
||||||
|
"-g", f"--tag={TAG_NAME}",
|
||||||
|
"--template=./tools/announceybot/release-dep-update-template.md",
|
||||||
|
], capture_output=True)
|
||||||
|
text = ret.stdout.decode("utf-8")
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
annotation = get_tag_annotation(TAG_NAME)
|
annotation = get_tag_annotation(TAG_NAME)
|
||||||
message = f'''New release {TAG_NAME}!
|
zon_update = get_replacement()
|
||||||
|
message = f'''# New release {TAG_NAME}!
|
||||||
|
|
||||||
|
## Updates
|
||||||
|
|
||||||
Updates:
|
|
||||||
{annotation}
|
{annotation}
|
||||||
|
|
||||||
See the release page: https://github.com/zigzap/zap/releases for more information!'''
|
## Using it
|
||||||
|
|
||||||
|
Modify your `build.zig.zon` like this:
|
||||||
|
|
||||||
|
'''
|
||||||
|
message += zon_update + "\n"
|
||||||
|
message += 'See the [release page](https://github.com/zigzap/zap/releases/'
|
||||||
|
message += f'{TAG_NAME}) for more information!'
|
||||||
send_to_discord(message)
|
send_to_discord(message)
|
||||||
|
|
14
tools/announceybot/release-dep-update-template.md
Normal file
14
tools/announceybot/release-dep-update-template.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
```zig
|
||||||
|
.{
|
||||||
|
.name = "My example project",
|
||||||
|
.version = "0.0.1",
|
||||||
|
|
||||||
|
.dependencies = .{
|
||||||
|
// zap {tag}
|
||||||
|
.zap = .{
|
||||||
|
.url = "https://github.com/zigzap/zap/archive/refs/tags/{tag}.tar.gz",
|
||||||
|
.hash = "{hash}",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
62
tools/announceybot/update_readme.py
Normal file
62
tools/announceybot/update_readme.py
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# <!-- INSERT_DEP_BEGIN -->
|
||||||
|
# ```zig
|
||||||
|
# .{
|
||||||
|
# .name = "myapp",
|
||||||
|
# .version = "0.0.1",
|
||||||
|
# .dependencies = .{
|
||||||
|
# // zap release-0.0.24
|
||||||
|
# .zap = .{
|
||||||
|
# .url = "https://github.com/zigzap/zap/archive/refs/tags/release-0.0.24.tar.gz",
|
||||||
|
# .hash = "1220f520fcdd4b3adbca918deeb42f512f7ef4a827680eea8af9abc64b90ed7a5e78",
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# }
|
||||||
|
# ```
|
||||||
|
# <!-- INSERT_DEP_END -->
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
TAG_NAME = os.getenv('TAG_NAME', sys.argv[1])
|
||||||
|
|
||||||
|
REPLACE_BEGIN_MARKER = '<!-- INSERT_DEP_BEGIN -->'
|
||||||
|
REPLACE_END_MARKER = '<!-- INSERT_DEP_END -->'
|
||||||
|
|
||||||
|
|
||||||
|
def get_replacement():
|
||||||
|
ret = subprocess.run([
|
||||||
|
"./zig-out/bin/pkghash",
|
||||||
|
"-g", f"--tag={TAG_NAME}",
|
||||||
|
"--template=./tools/announceybot/release-dep-update-template.md",
|
||||||
|
], capture_output=True)
|
||||||
|
text = ret.stdout.decode("utf-8")
|
||||||
|
return text
|
||||||
|
|
||||||
|
out_lines = []
|
||||||
|
with open('README.md', 'rt') as f:
|
||||||
|
in_replace_block = False
|
||||||
|
update_lines = get_replacement().split("\n")
|
||||||
|
|
||||||
|
print("Updating with:")
|
||||||
|
print('\n'.join(update_lines))
|
||||||
|
|
||||||
|
lines = [l.rstrip() for l in f.readlines()]
|
||||||
|
for line in lines:
|
||||||
|
if in_replace_block:
|
||||||
|
if line.startswith(REPLACE_END_MARKER):
|
||||||
|
in_replace_block = False
|
||||||
|
continue
|
||||||
|
# ignore the line
|
||||||
|
if line.startswith(REPLACE_BEGIN_MARKER):
|
||||||
|
out_lines.append(REPLACE_BEGIN_MARKER)
|
||||||
|
in_replace_block = True
|
||||||
|
# append the stuff
|
||||||
|
out_lines.extend(update_lines)
|
||||||
|
out_lines.append(REPLACE_END_MARKER)
|
||||||
|
continue
|
||||||
|
out_lines.append(line)
|
||||||
|
|
||||||
|
with open('README.md', 'wt') as f:
|
||||||
|
f.write('\n'.join(out_lines))
|
|
@ -239,7 +239,7 @@ fn renderTemplate(gpa: std.mem.Allocator, tag: []const u8, template: []const u8,
|
||||||
const s2 = try std.mem.replaceOwned(u8, gpa, s1, "{hash}", hash);
|
const s2 = try std.mem.replaceOwned(u8, gpa, s1, "{hash}", hash);
|
||||||
defer gpa.free(s2);
|
defer gpa.free(s2);
|
||||||
|
|
||||||
std.debug.print("{s}\n", .{s2});
|
try std.io.getStdOut().writer().writeAll(s2);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn cmdPkg(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
pub fn cmdPkg(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
||||||
|
|
Loading…
Add table
Reference in a new issue