summaryrefslogtreecommitdiff
path: root/devenv.nix
blob: 7aa21dbbf2aacbe991682d6583354dca4daad39e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{ inputs, pkgs, config, ... }:
{
  # to install ADE and extract its key, run the following scripts
  # wine-setup
  # python-install
  # ade-install
  # dedrm-install
  # extract-key

  # sources:
  # https://baptiste.bouchereau.pro/tutorial/read-ade-protected-ebooks-on-linux/#setup-the-calibre-plugin
  # https://gist.github.com/rendyanthony/a1d6b830c33a5e0fcd8b4c86f3f0dbff

  packages = with pkgs; [
    # for installing ADE and extracting its key
    wget wine winetricks gnutls
    # for calibre
    calibre
  ];

  env = {
    WINEPREFIX = "${config.env.DEVENV_ROOT}/wine";
    WINEARCH = "win32";
    PYTHONVERSION = "3.12.8";
    ADEVERSION = "2.0";
    DEDRMVERSION = "10.0.3";
    DEDRM = "${config.env.DEVENV_ROOT}/DeDRM";
  };

  scripts = {
    wine-rm.exec = ''
      rm -rf "$WINEPREFIX"
    '';

    wine-setup.exec = ''
      echo ============================================================
      echo Setting up Wine environment...
      echo ============================================================
      mkdir -p $WINEPREFIX
      wineboot
      winetricks -q corefonts
      winetricks -q dotnet35sp1
      winetricks -q python
      echo ==============================
      echo Wine environment set up!
      echo ==============================
    '';

    python-install.exec = ''
      echo ============================================================
      echo Downloading Python installer...
      echo ============================================================
      wget "https://www.python.org/ftp/python/$PYTHONVERSION/python-$PYTHONVERSION.exe" -O "$WINEPREFIX"/python.exe
      echo ============================================================
      echo Installing Python inside Wine...
      echo The graphical installer will open next.
      echo MAKE SURE TO SELECT '"add python.exe to PATH"'!
      echo You can always rerun the Python install with "'python-install'"
      read -p "Press ENTER to start to installing python."
      echo ============================================================
      wine "$WINEPREFIX"/python.exe
      wine python -m pip install pycryptodome
      echo ============================================================
      echo Python installed!
      echo ============================================================
    '';


    ade-install.exec = ''
      echo ============================================================
      echo Downloading ADE installer...
      echo ============================================================
      wget http://download.adobe.com/pub/adobe/digitaleditions/ADE_"$ADEVERSION"_Installer.exe -O "$WINEPREFIX/ADE.exe"
      echo ============================================================
      echo Installing ADE inside Wine...
      echo The graphical installer will open next.
      echo Once the installation is complete, ADE will start.
      echo MAKE SURE TO AUTHORIZE YOUR WINE ENVIRONMENT
      echo IN '"Help > Authorize your computer"'
      echo You can always rerun the ADE install with "'ade-install'",
      echo and you can launch ADE with "'ade'".
      read -p "Press ENTER to start to installing ADE."
      echo ============================================================
      wine $WINEPREFIX/ADE.exe
      echo ============================================================
      echo ADE installed!
      echo ============================================================
    '';

    ade.exec = ''
      wine "$WINEPREFIX/drive_c/Program Files/Adobe/Adobe Digital Editions $ADEVERSION/DigitalEditions.exe"
    '';

    dedrm-install.exec = ''
      echo ============================================================
      echo Downloading and extracting DeDRM script...
      echo ============================================================
      wget "https://github.com/noDRM/DeDRM_tools/releases/download/v$DEDRMVERSION/DeDRM_tools_$DEDRMVERSION.zip" -O "$WINEPREFIX/DeDRM.zip"
      unzip "$WINEPREFIX/DeDRM.zip" -d "$DEDRM"
      unzip "$WINEPREFIX/DeDRM/DeDRM_plugin.zip" -d "$DEDRM/DeDRM_plugin"
    '';

    extract-key.exec = ''
      echo ============================================================
      echo Extracting ADE key...
      echo ============================================================
      wine python "$DEDRM/DeDRM_plugin/adobekey.py"
      ln -sf "$WINEPREFIX/DeDRM_plugin/*.der adobekey.der"
      echo ============================================================
      echo ADE key extracted to "'$DEVENV_ROOT/adobekey.der'"!
      echo Check out the links in "'devenv.nix'" for what to do next.
      echo ============================================================
    '';
  };
}