Skip to content

Commit d6f9eda

Browse files
authored
Merge pull request #40 from aganzha/rc-0.1.18
Rc 0.1.18
2 parents f2f0f2d + 67ad8a2 commit d6f9eda

24 files changed

+1659
-639
lines changed

Cargo.lock

Lines changed: 341 additions & 116 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[package]
22
name = "stage"
3+
description="GUI Git client inspired by Magit"
34
version = "0.1.17"
45
edition = "2021"
56
license = "GPL-3.0-or-later"
@@ -12,10 +13,15 @@ libadwaita = { version = "0.7.2", features = ["v1_6"] }
1213
git2 = "0.20.1"
1314
regex = "1.10.2"
1415
log = "0.4.20"
15-
env_logger = "0.10.1"
16+
env_logger = "0.11.8"
1617
async-channel = "2.2.0"
1718
chrono = "0.4.35"
1819
html-escape = "0.2.13"
1920
similar = "2.7.0"
2021
anyhow = "1.0.97"
2122
gtk4-sys = "0.9.6"
23+
tree-sitter = "0.25.3"
24+
tree-sitter-python = "0.23.6"
25+
tree-sitter-rust = "0.23.2"
26+
tree-sitter-typescript = "0.23.2"
27+
palette = "0.7.5"

bump.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
current_version="0.1.17"
3+
new_version="0.1.18"
4+
sed -i "s/$current_version/$new_version/g" ./Cargo.toml
5+
sed -i "s/$current_version/$new_version/g" ./io.github.aganzha.Stage.json
6+
sed -i "s/$current_version/$new_version/g" ./io.github.aganzha.Stage.metainfo.xml
7+
sed -i "s/$current_version/$new_version/g" ./rpmbuild.sh

compile_resources.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
#!/bin/bash
2-
glib-compile-resources src/io.github.aganzha.Stage.gresource.xml --target src/gresources.compiled
2+
glib-compile-resources io.github.aganzha.Stage.gresource.xml --target src/gresources.compiled

compile_schema.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
#!/bin/bash
2-
glib-compile-schemas ./src && cp ./src/gschemas.compiled ./target/debug && cp ./src/gschemas.compiled ./target/release
2+
schema_path=~/.local/share/glib-2.0/schemas/
3+
/bin/cp io.github.aganzha.Stage.gschema.xml $schema_path
4+
glib-compile-schemas $schema_path
5+
# glib-compile-schemas ./src && cp ./src/gschemas.compiled ./target/debug && cp ./src/gschemas.compiled ./target/release

install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cargo fetch --manifest-path "$SOURCE_ROOT"/Cargo.toml --offline --verbose
99

1010
# resources
1111
cp "$PROJECT_ROOT"/io.github.aganzha.Stage.metainfo.xml ./
12-
glib-compile-resources "$PROJECT_SOURCES"/io.github.aganzha.Stage.gresource.xml --target "$PROJECT_SOURCES"/gresources.compiled
12+
glib-compile-resources "$PROJECT_ROOT"/io.github.aganzha.Stage.gresource.xml --target "$PROJECT_SOURCES"/gresources.compiled
1313

1414
cargo build --release --verbose --offline
1515

io.github.aganzha.Stage.desktop

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[Desktop Entry]
22
Name=Stage
3-
Comment=GUI Git client inspited by Magit
3+
Comment=GUI Git client inspired by Magit
44

55
Keywords=RevisionControl;Development;Utility;IDE;GNOME;GTK;git;
6-
Categories=Development;Utility;
6+
Categories=Development;
77

88
Exec=stage %U
99
Actions=new-window;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<summary>last opened repo path</summary>
2727
</key>
2828
<key name="scheme" type="s">
29-
<default>''</default>
29+
<default>'default'</default>
3030
<summary>choosen theme</summary>
3131
</key>
3232
<key name="zoom" type="i">

rpmbuild.sh

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
#!/bin/bash
2+
original_name="stage"
3+
name="stage-git-gui"
4+
version="0.1.17"
5+
release=2
6+
full_id="io.github.aganzha.Stage"
7+
spec_name="stage-git-gui.spec"
8+
rm -rf ~/rpmbuild/
9+
rpmdev-setuptree
10+
11+
# rename binary
12+
sed -i "s/name = \"$original_name\"/name = \"$name\"/" Cargo.toml
13+
sed -i "s|Exec=$original_name|Exec=$name|g" $full_id.desktop
14+
15+
# create archive
16+
tar_name="$name"-"$version".x86_64.tar.gz
17+
18+
# base spec
19+
tar czvf ~/rpmbuild/SOURCES/$tar_name --exclude-vcs --exclude=target --exclude='*~' --exclude='#*#' --transform="s|^|${name}-${version}/|" .
20+
rust2rpm --path $(pwd)/Cargo.toml -t fedora $name@$version
21+
22+
# release
23+
sed -i "s/^Release:.*$/Release: 2%{?dist}/" $spec_name
24+
25+
# fixmes
26+
sed -i 's|URL: # FIXME|URL: https:://github.com/aganzha/stage|' $spec_name
27+
sed -i '/^Source: # FIXME/a %global out_dir .' $spec_name
28+
sed -i "s|Source: # FIXME|Source: $tar_name|" $spec_name
29+
sed -i "s|License: # FIXME|License: GPL-3.0-or-later|" $spec_name
30+
31+
# xvfb for tests
32+
sed -i '/^BuildRequires: cargo-rpm-macros >= 26/a BuildRequires: xorg-x11-server-Xvfb' $spec_name
33+
sed -i 's/%cargo_test/xvfb-run bash -c '"'"'%cargo_test'"'"'/g' $spec_name
34+
35+
# update desktop database
36+
sed -i '/^BuildRequires: cargo-rpm-macros >= 26/a Requires(post): desktop-file-utils' $spec_name
37+
38+
# env on build
39+
sed -i '/^%build/a export OUT_DIR=%{out_dir}' $spec_name
40+
sed -i '/^%build/a glib-compile-resources $(pwd)/io.github.aganzha.Stage.gresource.xml --target $(pwd)/src/gresources.compiled' $spec_name
41+
42+
# env on install
43+
sed -i '/^%install/a export OUT_DIR=%{out_dir}' $spec_name
44+
45+
# env on check
46+
sed -i '/^%check/a export OUT_DIR=%{out_dir}' $spec_name
47+
48+
# after cargo_install --------- upside down (last directives will be first in spec because of sed 'after')
49+
# icons
50+
sed -i "/^%cargo_install/a install -m 644 icons/$full_id.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/$full_id.svg" $spec_name
51+
sed -i "/^%cargo_install/a install -m 644 icons/512x512/$full_id.png %{buildroot}%{_datadir}/icons/hicolor/512x512/apps/$full_id.png" $spec_name
52+
sed -i "/^%cargo_install/a install -m 644 icons/256x256/$full_id.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/$full_id.png" $spec_name
53+
sed -i "/^%cargo_install/a install -m 644 icons/128x128/$full_id.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/$full_id.png" $spec_name
54+
sed -i "/^%cargo_install/a install -m 644 icons/64x64/$full_id.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/$full_id.png" $spec_name
55+
sed -i "/^%cargo_install/a install -m 644 icons/32x32/$full_id.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/$full_id.png" $spec_name
56+
sed -i "/^%cargo_install/a install -m 644 icons/16x16/$full_id.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/$full_id.png" $spec_name
57+
sed -i "/^%cargo_install/a install -m 644 icons/$full_id.svg %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/$full_id-symbolic.svg" $spec_name
58+
sed -i "/^%cargo_install/a install -m 644 icons/org.gnome.Logs-symbolic.svg %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Logs-symbolic.svg" $spec_name
59+
60+
# meta
61+
sed -i "/^%cargo_install/a install -m 644 $full_id.desktop %{buildroot}%{_datadir}/applications/$full_id.desktop" $spec_name
62+
sed -i "/^%cargo_install/a install -m 644 $full_id.metainfo.xml %{buildroot}%{_datadir}/metainfo/$full_id.metainfo.xml" $spec_name
63+
sed -i "/^%cargo_install/a install -m 644 $full_id.gschema.xml %{buildroot}%{_datadir}/glib-2.0/schemas/$full_id.gschema.xml" $spec_name
64+
65+
# icons
66+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps' $spec_name
67+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/512x512/apps' $spec_name
68+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps' $spec_name
69+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps' $spec_name
70+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps' $spec_name
71+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/32x32/apps' $spec_name
72+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/16x16/apps' $spec_name
73+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps' $spec_name
74+
75+
76+
# meta
77+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/applications' $spec_name
78+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/metainfo' $spec_name
79+
sed -i '/^%cargo_install/a mkdir -p %{buildroot}%{_datadir}/glib-2.0/schemas' $spec_name
80+
81+
# declare files before changelog
82+
# icons
83+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/scalable/apps/$full_id.svg" $spec_name
84+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/512x512/apps/$full_id.png" $spec_name
85+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/256x256/apps/$full_id.png" $spec_name
86+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/128x128/apps/$full_id.png" $spec_name
87+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/64x64/apps/$full_id.png" $spec_name
88+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/32x32/apps/$full_id.png" $spec_name
89+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/16x16/apps/$full_id.png" $spec_name
90+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/symbolic/apps/$full_id-symbolic.svg" $spec_name
91+
sed -i "/^%changelog/i %{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Logs-symbolic.svg" $spec_name
92+
93+
# meta
94+
sed -i "/^%changelog/i %{_datadir}/applications/$full_id.desktop" $spec_name
95+
sed -i "/^%changelog/i %{_datadir}/metainfo/$full_id.metainfo.xml" $spec_name
96+
sed -i "/^%changelog/i %{_datadir}/glib-2.0/schemas/$full_id.gschema.xml" $spec_name
97+
98+
# adding post directive to compile schema, update caches etc
99+
sed -i '/^%changelog/i\
100+
%post\
101+
update-desktop-database &> /dev/null || :\
102+
if [ -x %{_bindir}/gtk-update-icon-cache ]; then\
103+
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :\
104+
fi\
105+
%postun\
106+
if [ "$1" = "0" ]; then\
107+
/usr/bin/update-desktop-database -q /usr/share/applications &>/dev/null || :\
108+
fi' $spec_name
109+
110+
# building
111+
mv $spec_name ~/rpmbuild/SPECS/
112+
git checkout io.github.aganzha.Stage.desktop
113+
git checkout Cargo.toml
114+
git checkout Cargo.lock
115+
rpmbuild -bs ~/rpmbuild/SPECS/$spec_name
116+
# toolbox run -c f42-rpmbuild rpmbuild -ba ~/rpmbuild/SPECS/$spec_name
117+
118+
# copr-cli build aganzha/stage ~/rpmbuild/SRPMS/stage-git-gui-0.1.17-1.fc42.src.rpm

0 commit comments

Comments
 (0)