Compare commits

...

2 Commits

Author SHA1 Message Date
eae2921ae2
jetbrains: normalize file names 2021-01-25 15:56:52 +11:00
010665a5c9
jetbrains: add update script wrapper
The main script only does a single program, and requires being fed the
name. This is a wrapper to get those names.
2021-01-25 15:56:11 +11:00
3 changed files with 44 additions and 2 deletions

View File

@ -0,0 +1,12 @@
#!/usr/bin/env nix-shell
#!nix-shell --show-trace ./updater.nix -i bash
set -e
for app in $APPS; do
./updater-jetbrains $app -o ${app#-[0-9.]*}-generated.nix
done
# Local Variables:
# mode: sh
# End:

View File

@ -7,6 +7,7 @@ import re
import requests import requests
import subprocess as sp import subprocess as sp
import sys import sys
import unicodedata
import urllib import urllib
from lxml import etree from lxml import etree
@ -35,6 +36,7 @@ def to_slug(name):
slug = name.replace(" ", "-").lstrip(".") slug = name.replace(" ", "-").lstrip(".")
for char in ",/;'\\<>:\"|!@#$%^&*()": for char in ",/;'\\<>:\"|!@#$%^&*()":
slug = slug.replace(char, "") slug = slug.replace(char, "")
slug = unicodedata.normalize("NFD", slug).encode("ascii", "ignore").decode("utf-8")
return slug return slug
@ -195,8 +197,10 @@ def prefetch(plugin, build, url=None):
["nix-prefetch-url", "--name", plugin.filename(), url], capture_output=True, ["nix-prefetch-url", "--name", plugin.filename(), url], capture_output=True,
) )
if not res.stdout: if not res.stdout:
raise IOError(f"nix-prefetch-url {plugin} failed: {res.stderr.decode('utf-8')}") raise IOError(
return res.stdout.decode("utf-8").strip() f"nix-prefetch-url {plugin} failed: {res.stderr.decode('unicode-escape')}"
)
return res.stdout.decode("unicode-escape").strip()
def custom_license(short, full, url, free=False): def custom_license(short, full, url, free=False):

View File

@ -0,0 +1,26 @@
{ pkgs ? import <nixpkgs> { } }:
let
inherit (pkgs.stdenv) lib;
in
pkgs.mkShell {
buildInputs = [
pkgs.bash
];
APPS = lib.mapAttrsToList
(k: v: v.name)
{
inherit (pkgs.jetbrains)
clion
datagrip
goland
idea-community
idea-ultimate
phpstorm
pycharm-community
pycharm-professional
rider
ruby-mine
webstorm;
};
}