first commit
This commit is contained in:
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
# Installiert NetClip nach /opt/netclip (als root) oder ~/.local/opt/netclip (als Benutzer).
|
||||
# Optional: ./install-linux.sh --server https://clip.example.de --token XYZ [--insecure]
|
||||
# schreibt die Vorgaben nach config.default.json (gilt fuer alle Benutzer beim ersten Start).
|
||||
set -e
|
||||
SRC=$(cd "$(dirname "$0")" && pwd)
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
DEST=/opt/netclip; BIN=/usr/local/bin; APPS=/usr/share/applications
|
||||
else
|
||||
DEST=$HOME/.local/opt/netclip; BIN=$HOME/.local/bin; APPS=$HOME/.local/share/applications
|
||||
fi
|
||||
mkdir -p "$DEST" "$BIN" "$APPS"
|
||||
cp -a "$SRC"/. "$DEST"/
|
||||
ln -sf "$DEST/NetClip" "$BIN/netclip"
|
||||
cp "$SRC/netclip.desktop" "$APPS/netclip.desktop"
|
||||
|
||||
SERVER=""; TOKEN=""; KEY=""; VERIFY=true
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--server) SERVER=$2; shift ;;
|
||||
--token) TOKEN=$2; shift ;;
|
||||
--server-key) KEY=$2; shift ;;
|
||||
--insecure) VERIFY=false ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if [ -n "$SERVER" ]; then
|
||||
printf '{"server": "%s", "token": "%s", "server_key": "%s", "verify_tls": %s, "autostart": true}\n' \
|
||||
"$SERVER" "$TOKEN" "$KEY" "$VERIFY" > "$DEST/config.default.json"
|
||||
chmod 644 "$DEST/config.default.json"
|
||||
fi
|
||||
echo "NetClip installiert in $DEST, Start mit: netclip"
|
||||
echo "Hinweis Wayland: Paket wl-clipboard installieren (apt install wl-clipboard)."
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=NetClip
|
||||
GenericName=Netzwerk-Zwischenablage
|
||||
Comment=Zwischenablage zwischen Geraeten teilen
|
||||
Exec=netclip
|
||||
Icon=edit-paste
|
||||
Categories=Utility;
|
||||
StartupNotify=false
|
||||
@@ -0,0 +1,71 @@
|
||||
; Inno Setup Skript fuer NetClip (erst "python build.py" unter Windows ausfuehren).
|
||||
; Interaktiv: NetClip-Setup.exe
|
||||
; Stille Verteilung (GPO, Intune, PDQ, ...):
|
||||
; NetClip-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /SERVER=https://clip.example.de /TOKEN=xyz [/SERVERKEY=abc] [/INSECURE=1]
|
||||
; Die Werte landen in config.default.json im Programmordner und gelten fuer jeden Benutzer beim ersten Start.
|
||||
; Autostart fuer alle Benutzer wird per HKLM-Run-Key eingerichtet.
|
||||
|
||||
#define AppVersion "1.0.0"
|
||||
|
||||
[Setup]
|
||||
AppId={{6C1E8B0B-4E39-4E0C-9C0B-6E1F2C9D5A11}
|
||||
AppName=NetClip
|
||||
AppVersion={#AppVersion}
|
||||
AppPublisher=NetClip
|
||||
DefaultDirName={autopf}\NetClip
|
||||
DefaultGroupName=NetClip
|
||||
OutputDir=..\dist
|
||||
OutputBaseFilename=NetClip-Setup-{#AppVersion}
|
||||
Compression=lzma2
|
||||
SolidCompression=yes
|
||||
ArchitecturesInstallIn64BitMode=x64compatible
|
||||
PrivilegesRequired=admin
|
||||
SetupIconFile=netclip.ico
|
||||
UninstallDisplayIcon={app}\NetClip.exe
|
||||
CloseApplications=force
|
||||
|
||||
[Languages]
|
||||
Name: "de"; MessagesFile: "compiler:Languages\German.isl"
|
||||
|
||||
[Tasks]
|
||||
Name: "autostart"; Description: "NetClip beim Anmelden starten (alle Benutzer)"
|
||||
|
||||
[Files]
|
||||
Source: "..\dist\NetClip\*"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\NetClip"; Filename: "{app}\NetClip.exe"
|
||||
Name: "{group}\NetClip deinstallieren"; Filename: "{uninstallexe}"
|
||||
|
||||
[Registry]
|
||||
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NetClip"; \
|
||||
ValueData: """{app}\NetClip.exe"" --minimized"; Flags: uninsdeletevalue; Tasks: autostart
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\NetClip.exe"; Description: "NetClip starten"; Flags: nowait postinstall skipifsilent runasoriginaluser
|
||||
|
||||
[Code]
|
||||
function JsonEscape(S: String): String;
|
||||
begin
|
||||
StringChangeEx(S, '\', '\\', True);
|
||||
StringChangeEx(S, '"', '\"', True);
|
||||
Result := S;
|
||||
end;
|
||||
|
||||
procedure CurStepChanged(CurStep: TSetupStep);
|
||||
var
|
||||
Server, Verify: String;
|
||||
begin
|
||||
if CurStep = ssPostInstall then
|
||||
begin
|
||||
Server := ExpandConstant('{param:SERVER|}');
|
||||
if Server <> '' then
|
||||
begin
|
||||
if ExpandConstant('{param:INSECURE|0}') = '1' then Verify := 'false' else Verify := 'true';
|
||||
SaveStringToFile(ExpandConstant('{app}\config.default.json'),
|
||||
'{"server": "' + JsonEscape(Server) + '", "token": "' + JsonEscape(ExpandConstant('{param:TOKEN|}')) +
|
||||
'", "server_key": "' + JsonEscape(ExpandConstant('{param:SERVERKEY|}')) + '", "verify_tls": ' + Verify + '}',
|
||||
False);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Reference in New Issue
Block a user