.pkgdata link force flag add

This commit is contained in:
2026-09-12 05:53:05 +03:00
parent 513d336a07
commit 3cb5a220a3
13 changed files with 327 additions and 9 deletions

9
assets/var/gnu/eza.md Normal file
View File

@ -0,0 +1,9 @@
eza 0.23.5
=
https://github.com/eza-community/eza/archive/refs/tags/v0.23.5.tar.gz
``` sh *** build ***
cargo install --path . --root $pkgpath --locked
mkdir -p ../share/zsh/site-functions
cp -l completions/zsh/* ../share/zsh/site-functions
```

2
assets/var/gnu/sex.md Normal file
View File

@ -0,0 +1,2 @@
sex
=

View File

@ -0,0 +1,39 @@
#!/bin/bash
if [ "$#" -lt 1 ]; then
echo "Usage:"
echo " sex <file1> [file2] ..."
exit 1
fi
# Проверка наличия xsel
if ! command -v xsel &> /dev/null; then
echo "Ошибка: xsel не установлен. Установите его: sudo pacman -S xsel" >&2
exit 1
fi
# Генерируем весь контент и передаем его напрямую в буфер обмена
{
# Project parser
printf 'Структура проекта\n```\n'
if command -v eza &> /dev/null; then
eza --git-ignore --tree 2>/dev/null || tree -I '.git' 2>/dev/null || find . -not -path './.git/*'
else
tree -I '.git' 2>/dev/null || find . -not -path './.git/*'
fi
printf '```\n'
# Files parser
for file in "$@"; do
if [ -f "$file" ]; then
printf 'Содержимое %s\n```\n' "$file"
cat "$file"
printf '\n```\n'
else
# Ошибки пишем в stderr, чтобы они не попали в буфер обмена
echo "Файл $file не найден." >&2
fi
done
} | xsel --clipboard --input
echo "✅ Скопировано в буфер обмена (X11/xsel)"

View File

@ -1,12 +1,16 @@
unitprint/certs
=
``` sh *** config ***
chgrp -R nginx /pkg/gnu/unitprint/certs chgrp -R nginx /pkg/gnu/unitprint/certs
chmod 750 /pkg/gnu/unitprint/certs chmod 750 /pkg/gnu/unitprint/certs
chmod 640 /pkg/gnu/unitprint/certs/fullchain.pem chmod 640 /pkg/gnu/unitprint/certs/fullchain.pem
chmod 640 /pkg/gnu/unitprint/certs/fullchain.pem chmod 640 /pkg/gnu/unitprint/certs/fullchain.pem
```
``` sh
# free bsd # free bsd
rsync -aL root@d:/usr/local/etc/letsencrypt/live/unitprint.ru/fullchain.pem /pkg/gnu/unitprint/certs/ rsync -aL root@d:/usr/local/etc/letsencrypt/live/unitprint.ru/fullchain.pem /pkg/gnu/unitprint/certs/
rsync -aL root@d:/usr/local/etc/letsencrypt/live/unitprint.ru/privkey.pem /pkg/gnu/unitprint/certs/ rsync -aL root@d:/usr/local/etc/letsencrypt/live/unitprint.ru/privkey.pem /pkg/gnu/unitprint/certs/
```

View File

@ -0,0 +1,80 @@
-----BEGIN CERTIFICATE-----
MIIDhzCCAwygAwIBAgISBpczszTJXi3QhiIqKmNleRy7MAoGCCqGSM49BAMDMDMx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQDEwNZ
RTIwHhcNMjYwOTA5MTQzODI0WhcNMjYxMjA4MTQzODIzWjAXMRUwEwYDVQQDEwx1
bml0cHJpbnQucnUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARQhZO5MmseZgsS
LBsFCXLDAeZbC6DuYKlHr32+zr4lq4S2uQISGtIpesqwuCWhub+95BbmMsoPoAub
8WC1CvHCo4ICGjCCAhYwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUF
BwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFP6hXJcTKU4o8HCpQIzuRgUJJGfq
MB8GA1UdIwQYMBaAFLlZ8o7PIvCG0zdI/3YUGLqC2FWHMDMGCCsGAQUFBwEBBCcw
JTAjBggrBgEFBQcwAoYXaHR0cDovL3llMi5pLmxlbmNyLm9yZy8wFwYDVR0RBBAw
DoIMdW5pdHByaW50LnJ1MBMGA1UdIAQMMAowCAYGZ4EMAQIBMC4GA1UdHwQnMCUw
I6AhoB+GHWh0dHA6Ly95ZTIuYy5sZW5jci5vcmcvNjAuY3JsMIIBDAYKKwYBBAHW
eQIEAgSB/QSB+gD4AH0AqCbL4wrGNRJGUz/gZfFPGdluGQgTxB3ZbXkAsxI8VScA
AAGghtCiCAAIAAAFAC+bPrMEAwBGMEQCIEpTuA2ICiA9uzswKYCOUlwsbeHl1lNE
8hlPX8m8AZ87AiAFC9sBAzBYFr8eeb4mFzStIOcDY60LjPX0VJoeEs0ihQB3AJRO
Q4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABoIbQp0YAAAQDAEgwRgIh
AOTRjY2JfZTbyDXVxiEHJpshzHaNFO8U2yYEQxnEKdNXAiEA0wyyf/boR4bhoyRP
VvWAu7rKlGaMHSKb6JJYdWrvyxIwCgYIKoZIzj0EAwMDaQAwZgIxAMIi7H17c07k
O6UlJbq63UcLvPPjSwNN1kw7BM0MRJ6/41Xm3y0Q4fptAx83gBhEGgIxALSA1fw0
HKUQAzdep5KcMS2aFutVXvsXpT039ctQVNz+ra+86RASA6t6BTw/Ws7wzw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICjDCCAhGgAwIBAgIQTfOxXdbAeExQfNN7WObxFTAKBggqhkjOPQQDAzAuMQsw
CQYDVQQGEwJVUzENMAsGA1UEChMESVNSRzEQMA4GA1UEAxMHUm9vdCBZRTAeFw0y
NTA5MDMwMDAwMDBaFw0yODA5MDIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYD
VQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQDEwNZRTIwdjAQBgcqhkjOPQIBBgUr
gQQAIgNiAARxmrQzkdbEEL3MqXt3dJQttYc47axkdDTHud5TPqM2z5uSD5cmk0Wr
HlWXvnlvqBLqiB34kluxIbmMyAiq3/YD6e80/vV259K8XQIdjFXloYOa0mIU71f7
HQ09PvYDlw+jge4wgeswDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUF
BwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLlZ8o7PIvCG0zdI/3YU
GLqC2FWHMB8GA1UdIwQYMBaAFKPIJlqOoUzQNWP8myPIOq5W809WMDIGCCsGAQUF
BwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3llLmkubGVuY3Iub3JnLzATBgNV
HSAEDDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veWUuYy5s
ZW5jci5vcmcvMAoGCCqGSM49BAMDA2kAMGYCMQDIcnw5dcZLN9ffynXnnkLD/itS
JEycJPb3sRkzeqBowup7vOsAwaqoCnNn/jh9wycCMQCJM6CPlaOC4pQYYbJtVPYb
DKrIb2EKk5NpOpE6/XttQYZV/3gilB9l+Cc/DOVwmyg=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICpjCCAiugAwIBAgIRAIchZfw0tuX7qK3Vs3BftTowCgYIKoZIzj0EAwMwTzEL
MAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNo
IEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDIwHhcNMjYwNTEzMDAwMDAwWhcN
MzIwOTAyMjM1OTU5WjAuMQswCQYDVQQGEwJVUzENMAsGA1UEChMESVNSRzEQMA4G
A1UEAxMHUm9vdCBZRTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDwS/6vhrcVqcbBo
+wgdI3fwn9x7DNJJOY/lTOti0vkwuRN87RhEhTH17E7XyFjWsPYhIPt/wzOqxTd2
b+4ZJNy9ID04YywF9U5zasDVyGSNErVNtz8uSGh5izW87j77GaOB6zCB6DAOBgNV
HQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB
/zAdBgNVHQ4EFgQUo8gmWo6hTNA1Y/ybI8g6rlbzT1YwHwYDVR0jBBgwFoAUfEKW
rt5LSDv6kviejM9ti6lyN5UwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZo
dHRwOi8veDIuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcGA1Ud
HwQgMB4wHKAaoBiGFmh0dHA6Ly94Mi5jLmxlbmNyLm9yZy8wCgYIKoZIzj0EAwMD
aQAwZgIxAMU19WCtmxVND8UHBZRoma49Z7jPs64Dma0eTu1OChVbB/2J7GV3nvYK
Ax54uk1G9QIxAO0miLVJu8PLNiXXXkiE/gsK3CTRTF/aeo4bMX42Zw40csRU6AC2
6hSW1/IWaas6dg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEcDCCAligAwIBAgIQbI8dxyfHEX97r4U6yYD5zTANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNjA1MTMwMDAwMDBa
Fw0zMjA5MDIyMzU5NTlaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5l
dCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgy
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H
ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7
AlF9ItgKbppbd9/w+kHsOdx1ymgHDB/qo4H1MIHyMA4GA1UdDwEB/wQEAwIBBjAd
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB/zAd
BgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwHwYDVR0jBBgwFoAUebRZ5nu2
5eQBc4AIiMgaWPbpm24wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRw
Oi8veDEuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcGA1UdHwQg
MB4wHKAaoBiGFmh0dHA6Ly94MS5jLmxlbmNyLm9yZy8wDQYJKoZIhvcNAQELBQAD
ggIBAD2/e9frmMxNpCV03qUHegg+MV2wz9644YoXdqtH8RyWYcBO7xfjjGEXdU1e
/o0OkEFiynUCOSIk/vLLo7ttz6CPAeNlWfC0XNkoGeWgK6jjXvozBaGuGH5n0Ufo
shMeWTuURqNN5G00sSXDTBrpp2+mgvdZQjb8K11TYMA25QA+YHNfbIEL0BniAhKS
2gsnJjSzrdZLI+EZ7SEyqdR2rkjd1KutLDU+n3TFyxjniZVGur4YlhMP3mY/dV95
IruAkkjOZier6hGBdEgZXXvaCz9u9iVEadsIE75pAGL8oHV5vxdARDiotRpul1IN
/UZwzAbrfUFcw1HkAcYD/mlZfnQ2ieCF2MS7j3Vhv7JPDKp45fmykmzYNSrumRW0
upFFKDBOoF7hsOb7oLyHS+Uft6jOUfOrogj8YUx38hKb2K20r42OgsSdDdxdeYWc
MS3Sb6mwJeSZEYxJ2gaXnDSPaKhhrNkYwljyVQyr4Nq+MEJytXNTnHqaAcrNwZlV
pcJL1KBnMrMjP7eanvUwL3FYj3cF17jtboLt7gLoi4+2rWZFvn+w54jmd/FIuhhZ
cEaU/wvU6BUNMtcVquVGHp7itQeDth5j+XL3j4WJ2SABwzUl6OeYdgpIt/ITZa+p
TT0mQ/r5XyA4MEAiabn7XJjvCERlF2dcn2wqJw+CreTkkQ2R
-----END CERTIFICATE-----

View File

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkXrj+sMy/2JyMx1c
gSX8eZnuBqO18V+2er1PmMwz+XShRANCAARQhZO5MmseZgsSLBsFCXLDAeZbC6Du
YKlHr32+zr4lq4S2uQISGtIpesqwuCWhub+95BbmMsoPoAub8WC1CvHC
-----END PRIVATE KEY-----

View File

@ -0,0 +1,23 @@
unitprint/backend-local/nginx
=
``` sh *** config ***
mkdir -p /pkg/gnu/unitprint/nginx/run
chgrp -R nginx /pkg/gnu/unitprint/nginx/run
```
``` sh *** set-aura ***
cp -fl .app.conf app.conf
```
``` sh *** set-local ***
cp -fl .app-local.conf app.conf
```
``` sh *** set-freebsd ***
cp -fl .app-freebsd-proxy.conf app.conf
```
``` sh *** off ***
rm app.conf
```

View File

@ -0,0 +1,43 @@
server {
listen 80;
server_name unitprint.ru www.unitprint.ru;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
http2 on;
server_name unitprint.ru www.unitprint.ru;
ssl_certificate /usr/local/etc/letsencrypt/live/unitprint.ru/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/unitprint.ru/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
access_log /var/log/nginx/unitprint.access.log;
error_log /var/log/nginx/unitprint.error.log;
location / {
proxy_pass http://192.168.1.129;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 100M;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}

View File

@ -0,0 +1,75 @@
server {
listen 80 default_server;
server_name unitprint.ru www.unitprint.ru 192.168.20.1 _
connectivitycheck.android.com
connectivitycheck.gstatic.com
clients3.google.com
www.google.com;
location = /generate_204 { return 204; }
location = /gen_204 { return 204; }
location = /hotspot-detect.html { return 204; }
location = /connecttest.txt { return 204; }
location = /mobile/status.php { return 204; }
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
http2 on;
server_name unitprint.ru www.unitprint.ru 192.168.20.1 _;
ssl_certificate /pkg/gnu/unitprint/certs/fullchain.pem;
ssl_certificate_key /pkg/gnu/unitprint/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff always;
root /pkg/gnu/unitprint/web-app/dist;
index index.html;
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_min_length 1000;
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 50M;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
location ~* ^/(sw\.js|registerSW\.js|manifest\.webmanifest)$ {
expires -1;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
location / {
try_files $uri $uri/ /index.html;
}
}

View File

@ -0,0 +1,43 @@
server {
listen 80;
server_name unitprint.ru www.unitprint.ru 192.168.1.129;
access_log /pkg/gnu/unitprint/nginx/run/unitprint.access.log;
error_log /pkg/gnu/unitprint/nginx/run/unitprint.error.log;
root /pkg/gnu/unitprint/web-app/dist;
index index.html;
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_min_length 1000;
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 50M;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
location ~* ^/(sw\.js|registerSW\.js|manifest\.webmanifest)$ {
expires -1;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
location / {
try_files $uri $uri/ /index.html;
}
}

View File

@ -2,10 +2,6 @@ unitprint/web-app
= =
ssh://git@root-kit.ru:17458/UnitPrint/web-app.git ssh://git@root-kit.ru:17458/UnitPrint/web-app.git
``` env *** env ***
save_source=true
```
``` sh *** build *** ``` sh *** build ***
git pull git pull
npm install npm install
@ -24,4 +20,3 @@ cd src
npm create vite@latest . -- --template svelte --no-interactive --overwrite npm create vite@latest . -- --template svelte --no-interactive --overwrite
npm install npm install
``` ```

View File

@ -9,7 +9,7 @@ pub fn config(repo: &String, pkgname: &String) {
let pkgdata = crate::commands::get_aeropkg_var().join(repo).join(pkgname).join(".pkgdata"); let pkgdata = crate::commands::get_aeropkg_var().join(repo).join(pkgname).join(".pkgdata");
if pkgdata.exists() { if pkgdata.exists() {
let status = Command::new("cp").args(["-rPl", &format!("{}/.", pkgdata.to_string_lossy()), &pkg_dir.to_string_lossy()]).status(); let status = Command::new("cp").args(["-rPlf", &format!("{}/.", pkgdata.to_string_lossy()), &pkg_dir.to_string_lossy()]).status();
if let Err(e) = status { eprintln!("Warning: failed to copy .pkgdata for {}/{}: {}", repo, pkgname, e) } if let Err(e) = status { eprintln!("Warning: failed to copy .pkgdata for {}/{}: {}", repo, pkgname, e) }
} }

View File

@ -29,7 +29,7 @@ pub fn download(repo: &String, pkgname: &String) {
} }
let pkgdata = crate::commands::get_aeropkg_var().join(repo).join(pkgname).join(".pkgdata.patch"); let pkgdata = crate::commands::get_aeropkg_var().join(repo).join(pkgname).join(".pkgdata.patch");
if pkgdata.exists() { if pkgdata.exists() {
let status = Command::new("cp").args(["-rPl", &format!("{}/.", pkgdata.to_string_lossy()), &src.to_string_lossy()]).status(); let status = Command::new("cp").args(["-rPlf", &format!("{}/.", pkgdata.to_string_lossy()), &src.to_string_lossy()]).status();
if let Err(e) = status { eprintln!("Warning: failed to copy .pkgdata for {}/{}: {}", repo, pkgname, e) } if let Err(e) = status { eprintln!("Warning: failed to copy .pkgdata for {}/{}: {}", repo, pkgname, e) }
} }