Compare commits

..

4 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
fb2bbf59d0
jetbrains: include small set of generated IDEA plugins 2021-01-25 15:27:16 +11:00
3c8d8f0347
jetbrains: move to auto-generated plugins
Some edge cases but appears to work on my machine (TM).

Still TODO is setting up the job to generate and commit updates.
2021-01-25 15:27:16 +11:00
5 changed files with 45 additions and 44 deletions

View File

@ -1,41 +0,0 @@
{ lib, stdenv, fetchzip }:
self:
let
commonBuild = import ../../../build-support/jetbrains/plugin.nix {
inherit lib stdenv fetchzip;
jetbrainsPlatforms = [
"clion"
"datagrip"
"goland"
"idea-community"
"idea-ultimate"
"phpstorm"
"pycharm-community"
"pycharm-professional"
"rider"
"ruby-mine"
"webstorm"
];
};
generateCommon = lib.makeOverridable ({
common ? ./manual-common-packages.nix
}: let
imported = import common {
inherit (self) callPackage;
};
super = imported;
overrides = { };
jetbrainsPlugins = super // overrides;
in jetbrainsPlugins // { inherit commonBuild; });
in generateCommon { }

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

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;
};
}

View File

@ -39,7 +39,7 @@ runCommand
for plugin in $plugins; do
local pluginName=$(basename $plugin)
pluginName=''${pluginName#*-}
pluginName=''${pluginName%-([0-9].)*}
pluginName=''${pluginName%-[0-9.]*}
ln -s $plugin $out/$packageName/plugins/$pluginName
done