Compare commits
No commits in common. "1591fdb7cc380470fd4b86c9c9ffec6834e82327" and "d0f63b2fc8612294f1a69168dc0eb32f86781124" have entirely different histories.
1591fdb7cc
...
d0f63b2fc8
|
@ -86,7 +86,8 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
extensions = {
|
extensions = {
|
||||||
inherit (pkgs.mediawiki-extensions) DeleteBatch UserMerge PluggableAuth SimpleSAMLphp VisualEditor;
|
#inherit (pkgs.mediawiki-extensions) DeleteBatch UserMerge PluggableAuth SimpleSAMLphp VisualEditor;
|
||||||
|
inherit (pkgs.mediawiki-extensions) UserMerge PluggableAuth SimpleSAMLphp VisualEditor;
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@ -120,6 +121,7 @@ in {
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
$wgEmergencyContact = "${cfg.passwordSender}";
|
$wgEmergencyContact = "${cfg.passwordSender}";
|
||||||
|
$wgShowIPinHeader = false;
|
||||||
$wgUseTeX = false;
|
$wgUseTeX = false;
|
||||||
$wgLocalInterwiki = $wgSitename;
|
$wgLocalInterwiki = $wgSitename;
|
||||||
|
|
||||||
|
@ -135,10 +137,6 @@ in {
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
# Debugging
|
|
||||||
$wgShowExceptionDetails = false;
|
|
||||||
$wgShowIPinHeader = false;
|
|
||||||
|
|
||||||
# Fix https://github.com/NixOS/nixpkgs/issues/183097
|
# Fix https://github.com/NixOS/nixpkgs/issues/183097
|
||||||
$wgDBserver = "${toString cfg.database.host}";
|
$wgDBserver = "${toString cfg.database.host}";
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ fetchgit }:
|
{ fetchzip }:
|
||||||
let
|
let
|
||||||
commit = "cad869fbd95637902673f744581b29e0f3e3f61a";
|
commit = "c17c919bdb9b67bb69f80df43e9ee9d33b1ecf1b";
|
||||||
project-name = "DeleteBatch";
|
project-name = "UserMerge";
|
||||||
tracking-branch = "REL1_41";
|
tracking-branch = "REL1_41";
|
||||||
in
|
in
|
||||||
(fetchgit {
|
fetchzip {
|
||||||
name = "mediawiki-delete-batch-source";
|
name = "mediawiki-delete-batch";
|
||||||
url = "https://gerrit.wikimedia.org/r/mediawiki/extensions/${project-name}";
|
url = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/${project-name}/+archive/${commit}.tar.gz";
|
||||||
rev = "refs/heads/${tracking-branch}";
|
hash = "sha256-+mkzTCo8RVlGoFyfCrSb5YMh4J6Pbi1PZLFu5ps8bWY=";
|
||||||
hash = "sha256-M1ek1WdO1/uTjeYlrk3Tz+nlb/fFZH+O0Ok7b10iKak=";
|
stripRoot = false;
|
||||||
}).overrideAttrs (_: {
|
|
||||||
passthru = { inherit project-name tracking-branch; };
|
passthru = { inherit project-name tracking-branch; };
|
||||||
})
|
}
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ fetchgit }:
|
{ fetchzip }:
|
||||||
let
|
let
|
||||||
commit = "4111a57c34e25bde579cce5d14ea094021e450c8";
|
commit = "4111a57c34e25bde579cce5d14ea094021e450c8";
|
||||||
project-name = "PluggableAuth";
|
project-name = "PluggableAuth";
|
||||||
tracking-branch = "REL1_41";
|
tracking-branch = "REL1_41";
|
||||||
in
|
in
|
||||||
(fetchgit {
|
fetchzip {
|
||||||
name = "mediawiki-pluggable-auth-source";
|
name = "mediawiki-pluggable-auth-source";
|
||||||
url = "https://gerrit.wikimedia.org/r/mediawiki/extensions/${project-name}";
|
url = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/${project-name}/+archive/${commit}.tar.gz";
|
||||||
rev = "refs/heads/${tracking-branch}";
|
|
||||||
hash = "sha256-aPtN8A9gDxLlq2+EloRZBO0DfHtE0E5kbV/adk82jvM=";
|
hash = "sha256-aPtN8A9gDxLlq2+EloRZBO0DfHtE0E5kbV/adk82jvM=";
|
||||||
}).overrideAttrs (_: {
|
stripRoot = false;
|
||||||
passthru = { inherit project-name tracking-branch; };
|
passthru = { inherit project-name tracking-branch; };
|
||||||
})
|
}
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ fetchgit }:
|
{ fetchzip }:
|
||||||
let
|
let
|
||||||
commit = "ecb47191fecd1e0dc4c9d8b90a9118e393d82c23";
|
commit = "ecb47191fecd1e0dc4c9d8b90a9118e393d82c23";
|
||||||
project-name = "SimpleSAMLphp";
|
project-name = "SimpleSAMLphp";
|
||||||
tracking-branch = "REL1_41";
|
tracking-branch = "REL1_41";
|
||||||
in
|
in
|
||||||
(fetchgit {
|
fetchzip {
|
||||||
name = "mediawiki-simple-saml-php-source";
|
name = "mediawiki-simple-saml-php-source";
|
||||||
url = "https://gerrit.wikimedia.org/r/mediawiki/extensions/${project-name}";
|
url = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/${project-name}/+archive/${commit}.tar.gz";
|
||||||
rev = "refs/heads/${tracking-branch}";
|
|
||||||
hash = "sha256-gKu+O49XrAVt6hXdt36Ru7snjsKX6g2CYJ0kk/d+CI8=";
|
hash = "sha256-gKu+O49XrAVt6hXdt36Ru7snjsKX6g2CYJ0kk/d+CI8=";
|
||||||
}).overrideAttrs (_: {
|
stripRoot = false;
|
||||||
passthru = { inherit project-name tracking-branch; };
|
passthru = { inherit project-name tracking-branch; };
|
||||||
})
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env nix-shell
|
#!/usr/bin/env nix-shell
|
||||||
#!nix-shell -i python3 -p "python3.withPackages(ps: with ps; [ beautifulsoup4 requests ])" nix-prefetch-git
|
#!nix-shell -i python3 -p "python3.withPackages(ps: with ps; [ beautifulsoup4 requests ])"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -8,13 +8,11 @@ import subprocess
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import json
|
|
||||||
|
|
||||||
import bs4
|
import bs4
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
BASE_WEB_URL = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions"
|
BASE_URL = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions"
|
||||||
BASE_GIT_URL = "https://gerrit.wikimedia.org/r/mediawiki/extensions/"
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class PluginMetadata:
|
class PluginMetadata:
|
||||||
|
@ -47,21 +45,26 @@ def get_metadata(file_content: str) -> dict[str,str] | None:
|
||||||
|
|
||||||
|
|
||||||
def get_newest_commit(project_name: str, tracking_branch: str) -> str:
|
def get_newest_commit(project_name: str, tracking_branch: str) -> str:
|
||||||
content = requests.get(f"{BASE_WEB_URL}/{project_name}/+log/refs/heads/{tracking_branch}/").text
|
content = requests.get(f"{BASE_URL}/{project_name}/+log/refs/heads/{tracking_branch}/").text
|
||||||
soup = bs4.BeautifulSoup(content, features="html.parser")
|
soup = bs4.BeautifulSoup(content, features="html.parser")
|
||||||
a = soup.find('li').findChild('a')
|
a = soup.find('li').findChild('a')
|
||||||
commit_sha = a['href'].split('/')[-1]
|
commit_sha = a['href'].split('/')[-1]
|
||||||
return commit_sha
|
return commit_sha
|
||||||
|
|
||||||
|
|
||||||
def get_nix_hash(url: str, commit: str) -> str:
|
def get_nix_hash(tar_gz_url: str) -> str:
|
||||||
out, err = subprocess.Popen(
|
out, err = subprocess.Popen(
|
||||||
["nix-prefetch-git", "--url", url, "--rev", commit, "--fetch-submodules", "--quiet"],
|
["nix-prefetch-url", "--unpack", "--type", "sha256", tar_gz_url],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE
|
||||||
|
).communicate()
|
||||||
|
out, err = subprocess.Popen(
|
||||||
|
["nix", "hash", "to-sri", "--type", "sha256", out.decode().strip()],
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.PIPE
|
stderr=subprocess.PIPE
|
||||||
).communicate()
|
).communicate()
|
||||||
|
|
||||||
return json.loads(out.decode().strip())['hash']
|
return out.decode().strip()
|
||||||
|
|
||||||
|
|
||||||
def set_commit_and_hash(file_content: str, commit: str, sha256: str) -> str:
|
def set_commit_and_hash(file_content: str, commit: str, sha256: str) -> str:
|
||||||
|
@ -76,16 +79,16 @@ def update(package_file: Path) -> None:
|
||||||
|
|
||||||
metadata = get_metadata(file_content)
|
metadata = get_metadata(file_content)
|
||||||
if metadata is None:
|
if metadata is None:
|
||||||
print(f"ERROR: could not find metadata for {package_file}")
|
|
||||||
return
|
return
|
||||||
if metadata.commit == "":
|
if metadata.commit == "":
|
||||||
metadata.commit = "<none>"
|
metadata.commit = "<none>"
|
||||||
|
|
||||||
new_commit = get_newest_commit(metadata.project_name, metadata.tracking_branch)
|
new_commit = get_newest_commit(metadata.project_name, metadata.tracking_branch)
|
||||||
new_hash = get_nix_hash(f"{BASE_GIT_URL}/{metadata.project_name}", new_commit)
|
if new_commit == metadata.commit:
|
||||||
if new_hash is None or new_hash == "":
|
return
|
||||||
print(f"ERROR: could not fetch hash for {metadata.project_name}")
|
|
||||||
exit(1)
|
new_url = f"{BASE_URL}/{metadata.project_name}/+archive/{new_commit}.tar.gz"
|
||||||
|
new_hash = get_nix_hash(new_url)
|
||||||
|
|
||||||
print(f"Updating {metadata.project_name}: {metadata.commit} -> {new_commit}")
|
print(f"Updating {metadata.project_name}: {metadata.commit} -> {new_commit}")
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ fetchgit }:
|
{ fetchzip }:
|
||||||
let
|
let
|
||||||
commit = "c17c919bdb9b67bb69f80df43e9ee9d33b1ecf1b";
|
commit = "c17c919bdb9b67bb69f80df43e9ee9d33b1ecf1b";
|
||||||
project-name = "UserMerge";
|
project-name = "UserMerge";
|
||||||
tracking-branch = "REL1_41";
|
tracking-branch = "REL1_41";
|
||||||
in
|
in
|
||||||
(fetchgit {
|
fetchzip {
|
||||||
name = "mediawiki-user-merge-source";
|
name = "mediawiki-user-merge-source";
|
||||||
url = "https://gerrit.wikimedia.org/r/mediawiki/extensions/${project-name}";
|
url = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/${project-name}/+archive/${commit}.tar.gz";
|
||||||
rev = "refs/heads/${tracking-branch}";
|
|
||||||
hash = "sha256-+mkzTCo8RVlGoFyfCrSb5YMh4J6Pbi1PZLFu5ps8bWY=";
|
hash = "sha256-+mkzTCo8RVlGoFyfCrSb5YMh4J6Pbi1PZLFu5ps8bWY=";
|
||||||
}).overrideAttrs (_: {
|
stripRoot = false;
|
||||||
passthru = { inherit project-name tracking-branch; };
|
passthru = { inherit project-name tracking-branch; };
|
||||||
})
|
}
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ fetchgit }:
|
{ fetchzip }:
|
||||||
let
|
let
|
||||||
commit = "170d19aad1f28dc6bd3f98ee277680cabba9db0c";
|
commit = "170d19aad1f28dc6bd3f98ee277680cabba9db0c";
|
||||||
project-name = "VisualEditor";
|
project-name = "VisualEditor";
|
||||||
tracking-branch = "REL1_41";
|
tracking-branch = "REL1_41";
|
||||||
in
|
in
|
||||||
(fetchgit {
|
fetchzip {
|
||||||
name = "mediawiki-visual-editor-source";
|
name = "mediawiki-visual-editor-source";
|
||||||
url = "https://gerrit.wikimedia.org/r/mediawiki/extensions/${project-name}";
|
url = "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/${project-name}/+archive/${commit}.tar.gz";
|
||||||
rev = "refs/heads/${tracking-branch}";
|
hash = "sha256-Qg5AE1kQ+R4iNYyqzjrcOf3g6WnPSQcYow1tU0RwFk0=";
|
||||||
hash = "sha256-5WVlO/OEk4eln5j/w4Tu/MXSmlvjIn7l6H+OTPaV+t4=";
|
stripRoot = false;
|
||||||
}).overrideAttrs (_: {
|
|
||||||
passthru = { inherit project-name tracking-branch; };
|
passthru = { inherit project-name tracking-branch; };
|
||||||
})
|
}
|
||||||
|
|
Loading…
Reference in New Issue