Tagged 1.0.2.
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/128x128/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/16x16/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/22x22/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/24x24/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/256x256/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 45 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/32x32/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/48x48/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/64x64/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
@@ -0,0 +1,61 @@
|
||||
|
||||
SUBDIRS = 16 22 24 32 48 64 128 256 nsis
|
||||
|
||||
|
||||
dist_man_MANS = gsmartcontrol.1
|
||||
|
||||
install-extra-mans:
|
||||
cd $(DESTDIR)$(mandir)/man1 && $(LN_S) -f gsmartcontrol.1 gsmartcontrol-root.1
|
||||
|
||||
uninstall-extra-mans:
|
||||
cd $(DESTDIR)$(mandir)/man1 && rm -f gsmartcontrol-root.1
|
||||
|
||||
|
||||
# This command is needed if installing with make install (the cache
|
||||
# file is ignored for rpms).
|
||||
gtk_update_icon_cache = gtk-update-icon-cache-3.0 -f -t $(datadir)/icons/hicolor
|
||||
|
||||
install-data-hook: install-extra-mans update-icon-cache
|
||||
uninstall-hook: uninstall-extra-mans update-icon-cache
|
||||
|
||||
update-icon-cache:
|
||||
@-if test -z "$(DESTDIR)"; then \
|
||||
echo "Updating GTK icon cache."; \
|
||||
$(gtk_update_icon_cache); \
|
||||
else \
|
||||
echo "*** Icon cache not updated. After (un)install, run this:"; \
|
||||
echo "*** $(gtk_update_icon_cache)"; \
|
||||
fi
|
||||
|
||||
|
||||
# Application data, installs to /usr/share/appname
|
||||
appdatadir = $(pkgdatadir)
|
||||
appdata_DATA = icon_cddvd.png icon_hdd.png
|
||||
|
||||
|
||||
# pkgdatadir = $(datadir)/gsmartcontrol
|
||||
# pkgdata_DATA =
|
||||
|
||||
# Desktop files
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_DATA = gsmartcontrol.desktop
|
||||
|
||||
# Appdata files
|
||||
metainfodir = $(datadir)/metainfo
|
||||
metainfo_DATA = gsmartcontrol.appdata.xml
|
||||
|
||||
|
||||
# Application pixmap (fallback icon for desktop files).
|
||||
# Same as 48/gsmartcontrol.png.
|
||||
# Also, xpm for debian menu, 32x32.
|
||||
pixmapsdir = $(datadir)/pixmaps
|
||||
pixmaps_DATA = 48/gsmartcontrol.png gsmartcontrol.xpm
|
||||
|
||||
|
||||
# Put everything inside the distribution
|
||||
EXTRA_DIST = $(appdata_DATA) gsmartcontrol.ico gsmartcontrol.xpm
|
||||
|
||||
|
||||
bin_SCRIPTS = gsmartcontrol-root
|
||||
CLEANFILES = $(bin_SCRIPTS)
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
#!/usr/bin/env bash
|
||||
############################################################################
|
||||
# Copyright:
|
||||
# (C) 2008 - 2014 Alexander Shaduri <ashaduri 'at' gmail.com>
|
||||
# License: See LICENSE_zlib.txt file
|
||||
############################################################################
|
||||
|
||||
# Run gsmartcontrol with root, asking for root password first.
|
||||
# export GSMARTCONTROL_SU to override a su command (e.g. "kdesu -c").
|
||||
|
||||
EXEC_BIN="@prefix@/bin/gsmartcontrol";
|
||||
prog_name="gsmartcontrol"
|
||||
|
||||
|
||||
# Preserve quotes in arguments
|
||||
final_args_quoted="";
|
||||
for i in "$@";do
|
||||
final_args_quoted="$final_args_quoted \"${i//\"/\\\"}\"";
|
||||
done;
|
||||
|
||||
|
||||
DESKTOP="auto";
|
||||
|
||||
# Compatibility with old syntax:
|
||||
# gsmartcontrol-root [<desktop> [program_options]]
|
||||
if [ "$1" == "auto" ] || [ "$1" == "kde" ] || [ "$1" == "gnome" ] || [ "$1" == "other" ]; then
|
||||
DESKTOP="$1";
|
||||
shift; # remove $1
|
||||
else
|
||||
# New syntax:
|
||||
# gsmartcontrol-root [--desktop=<auto|kde|gnome|other>] [program_options]
|
||||
|
||||
for arg in $*; do
|
||||
case $arg in
|
||||
--desktop=*)
|
||||
DESKTOP="${arg#*=}";
|
||||
final_args_quoted="${final_args_quoted/\"$arg\"/}";
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$DESKTOP" != "auto" ] && [ "$DESKTOP" != "kde" ] && \
|
||||
[ "$DESKTOP" != "gnome" ] && [ "$DESKTOP" != "other" ]; then
|
||||
echo "Usage: $0 [--desktop=<auto|kde|gnome|other>] [<${prog_name}_options>]";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
|
||||
# Auto-detect current desktop if auto was specified.
|
||||
if [ "$DESKTOP" = "auto" ]; then
|
||||
# KDE_SESSION_UID is present on kde3 and kde4.
|
||||
# Note that it may be empty (but still set)
|
||||
if [ "${KDE_SESSION_UID+set}" = "set" ]; then
|
||||
DESKTOP="kde";
|
||||
# same with gnome
|
||||
elif [ "${GNOME_DESKTOP_SESSION_ID+set}" = "set" ]; then
|
||||
DESKTOP="gnome";
|
||||
else
|
||||
DESKTOP="other";
|
||||
fi
|
||||
fi
|
||||
|
||||
# echo $DESKTOP;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# They're basically the same, only the order is different.
|
||||
# sux requires xterm to ask for the password.
|
||||
# xdg-su is basically like this script, except worse :)
|
||||
# su-to-root is a debian/ubuntu official method (although gksu is available).
|
||||
gnome_sus="su-to-root gnomesu gksu kdesu beesu xdg-su sux";
|
||||
kde_sus="su-to-root kdesu gnomesu gksu beesu xdg-su sux";
|
||||
other_sus="$gnome_sus";
|
||||
|
||||
|
||||
candidates="";
|
||||
found_su=""
|
||||
|
||||
if [ "$DESKTOP" = "gnome" ]; then
|
||||
candidates="$gnome_sus";
|
||||
elif [ "$DESKTOP" = "kde" ]; then
|
||||
candidates="$kde_sus";
|
||||
elif [ "$DESKTOP" = "other" ]; then
|
||||
candidates="$other_sus";
|
||||
fi
|
||||
|
||||
if [ "$GSMARTCONTROL_SU" = "" ]; then
|
||||
for subin in $candidates; do
|
||||
which $subin &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
found_su="$subin";
|
||||
break;
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$found_su" = "" ]; then
|
||||
xmessage "Error launching ${prog_name}: No suitable su mechanism found.
|
||||
Try installing kdesu, gnomesu, gksu, beesu or sux first.";
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# gnomesu and gksu (but not kdesu, not sure about others) fail to adopt
|
||||
# root's PATH. Since the user's PATH may not contain /usr/sbin (with smartctl)
|
||||
# on some distributions (e.g. mandriva), add it manually. We also add
|
||||
# /usr/local/sbin, since that's the default location of custom-compiled smartctl.
|
||||
# Add these directories _before_ existing PATH, so that the user is not
|
||||
# tricked into running it from some other path (we're running as root with
|
||||
# the user's env after all).
|
||||
# Add @prefix@/sbin as well (freebsd seems to require it).
|
||||
# Note that beesu won't show a GUI login box if /usr/sbin is before /usr/bin,
|
||||
# so add it first as well.
|
||||
EXTRA_PATHS="/usr/bin:/usr/sbin:/usr/local/sbin:@prefix@/sbin";
|
||||
export PATH="$EXTRA_PATHS:$PATH"
|
||||
|
||||
|
||||
# echo $found_su;
|
||||
|
||||
# Examples:
|
||||
# gnomesu -c 'gsmartcontrol --no-scan'
|
||||
# kdesu -c 'gsmartcontrol --no-scan'
|
||||
# beesu -P 'gsmartcontrol --no-scan'
|
||||
# su-to-root -X -c 'gsmartcontrol --no-scan'
|
||||
# xterm -e sux -c 'gsmartcontrol --no-scan' # sux asks for password in a terminal
|
||||
|
||||
|
||||
full_cmd="";
|
||||
|
||||
if [ "$GSMARTCONTROL_SU" != "" ]; then
|
||||
full_cmd="$GSMARTCONTROL_SU '$EXEC_BIN $final_args_quoted'";
|
||||
|
||||
elif [ "$found_su" = "sux" ]; then
|
||||
full_cmd="xterm -e sux -c '$EXEC_BIN $final_args_quoted'";
|
||||
|
||||
elif [ "$found_su" = "gksu" ]; then
|
||||
full_cmd="$found_su '$EXEC_BIN $final_args_quoted'";
|
||||
|
||||
elif [ "$found_su" = "beesu" ]; then
|
||||
full_cmd="$found_su -P '$EXEC_BIN $final_args_quoted'";
|
||||
|
||||
elif [ "$found_su" = "su-to-root" ]; then
|
||||
full_cmd="$found_su -X -c '$EXEC_BIN $final_args_quoted'";
|
||||
|
||||
else # gnomesu, kdesu, xdg-su
|
||||
full_cmd="$found_su -c '$EXEC_BIN $final_args_quoted'";
|
||||
fi
|
||||
|
||||
|
||||
# echo $full_cmd
|
||||
eval $full_cmd
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
.TH GSmartControl "1" "" "gsmartcontrol " "User Commands"
|
||||
.SH NAME
|
||||
GSmartControl \- Hard disk drive and SSD health inspection tool
|
||||
.SH SYNOPSIS
|
||||
\fBgsmartcontrol\fP [OPTIONS]
|
||||
|
||||
\fBgsmartcontrol\-root\fP [--desktop=\fI<desktop>\fP] [OPTIONS]
|
||||
.SH DESCRIPTION
|
||||
\fBGSmartControl\fP is a graphical user interface for smartctl (from
|
||||
smartmontools), which is a tool for querying and controlling SMART
|
||||
(Self-Monitoring, Analysis, and Reporting Technology) data on modern hard disk
|
||||
and solid-state drives. It allows you to inspect the drive's SMART data to
|
||||
determine its health, as well as run various tests on it.
|
||||
.PP
|
||||
This manual page documents briefly the \fBgsmartcontrol\fP and
|
||||
\fBgsmartcontrol\-root\fP commands.
|
||||
.PP
|
||||
\fBgsmartcontrol\-root\fP command launches \fBgsmartcontrol\fP with
|
||||
administrative privileges. The \fIdesktop\fP argument specifies which desktop
|
||||
is currently running, for automatic selection of native su mechanism. Valid
|
||||
values for \fIdesktop\fP are \fBauto\fP, \fBkde\fP, \fBgnome\fP, \fBother\fP.
|
||||
|
||||
.SH OPTIONS
|
||||
.SS "Help Options:"
|
||||
.TP
|
||||
\fB\-?\fP, \fB\-\-help\fP
|
||||
Show help options
|
||||
.TP
|
||||
\fB\-\-help\-all\fP
|
||||
Show all help options
|
||||
.TP
|
||||
\fB\-\-help\-gtk\fP
|
||||
Show GTK+ options
|
||||
.TP
|
||||
\fB\-\-help\-debug\fR
|
||||
Show logging options
|
||||
.SS "Application Options:"
|
||||
.TP
|
||||
\fB\-l\fP, \fB\-\-no\-locale\fP
|
||||
Don't use system locale
|
||||
.TP
|
||||
\fB\-V\fP, \fB\-\-version\fP
|
||||
Display version information
|
||||
.TP
|
||||
\fB\-\-no\-scan\fP
|
||||
Don't scan devices on startup
|
||||
.TP
|
||||
\fB\-\-no\-hide\-tabs\fP
|
||||
Don't hide non\-identity tabs when SMART is disabled. Useful for debugging.
|
||||
.TP
|
||||
\fB\-\-add\-virtual\fP
|
||||
Load smartctl data from file, creating a virtual drive. You
|
||||
can specify this option multiple times.
|
||||
.TP
|
||||
\fB\-\-add\-device\fP
|
||||
Add this device to device list. The format of the device is
|
||||
\fI<device>::<type>::<extra_args>\fP, where type and extra_args are optional.
|
||||
This option is useful with \fB\-\-no\-scan\fP to list certain drives only. You
|
||||
can specify this option multiple times. Example:\fR
|
||||
.nf
|
||||
\-\-add\-device /dev/sda \-\-add\-device /dev/twa0::3ware,2 \-\-add\-device '/dev/sdb::::-T permissive'
|
||||
.fi
|
||||
.TP
|
||||
\fB\-\-display\fP=\fIDISPLAY\fP
|
||||
X display to use
|
||||
.TP
|
||||
\fB\-v\fP, \fB\-\-verbose\fP
|
||||
Enable verbose logging; same as \fB\-\-verbosity\-level\fP 5
|
||||
.TP
|
||||
\fB\-q\fP, \fB\-\-quiet\fP
|
||||
Disable logging; same as \fB\-\-verbosity\-level\fP 0
|
||||
.TP
|
||||
\fB\-b\fP, \fB\-\-verbosity\-level\fP
|
||||
Set verbosity level [0\-5]
|
||||
.PP
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2008 \- 2012 Alexander Shaduri <ashaduri \'at\' gmail.com>
|
||||
.PP
|
||||
.SH AUTHOR
|
||||
This manual page was originally written by Giuseppe Iuculano
|
||||
<giuseppe@iuculano.it> for the Debian project.
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2017 GSmartControl developers -->
|
||||
<component type="desktop">
|
||||
<id>gsmartcontrol</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0 and GPL-3.0</project_license>
|
||||
<name>GSmartControl</name>
|
||||
<summary>Hard Disk and SSD Health Inspection</summary>
|
||||
<description>
|
||||
<p>
|
||||
GSmartControl is a graphical user interface for smartctl, which is a tool for
|
||||
querying and controlling SMART (Self-Monitoring, Analysis, and Reporting
|
||||
Technology) data in hard disk and solid-state drives. It allows you to inspect
|
||||
the drive's SMART data to determine its health, as well as run various tests
|
||||
on it.
|
||||
</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">gsmartcontrol.desktop</launchable>
|
||||
<url type="homepage">http://gsmartcontrol.sourceforge.net</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Main window</caption>
|
||||
<image>http://gsmartcontrol.sourceforge.net/home/images/main_ok.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Drive identity information</caption>
|
||||
<image>http://gsmartcontrol.sourceforge.net/home/images/info_identity.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Attribute list of a failing drive</caption>
|
||||
<image>http://gsmartcontrol.sourceforge.net/home/images/info_failing.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
</component>
|
||||
@@ -0,0 +1,26 @@
|
||||
[Desktop Entry]
|
||||
|
||||
# desktop file version
|
||||
Version=1.0
|
||||
Type=Application
|
||||
|
||||
Categories=System;Monitor;
|
||||
|
||||
Name=GSmartControl
|
||||
# short description, usually shown in parentheses after Name
|
||||
GenericName=Hard Disk and SSD Health Inspection
|
||||
# tooltip
|
||||
Comment=Monitor and control SMART data on hard disk and solid-state drives
|
||||
|
||||
# If it's a name only, it looks for "name.[png|xpm]" file in
|
||||
# $XDG_DATA_DIRS/icons and /usr/share/pixmaps.
|
||||
# An absolute file path is also supported.
|
||||
Icon=gsmartcontrol
|
||||
|
||||
# Run with root permissions. This should work with newer GNOME too.
|
||||
# It _should_ work with kde, but it hangs on mine, so use plain kdesu.
|
||||
#X-KDE-SubstituteUID=true
|
||||
#X-KDE-RootOnly=true
|
||||
|
||||
# Run with root permissions.
|
||||
Exec="@prefix@/bin/gsmartcontrol-root"
|
||||
|
After Width: | Height: | Size: 95 KiB |
@@ -0,0 +1,394 @@
|
||||
/* XPM */
|
||||
static char * gsmartcontrol_xpm[] = {
|
||||
"32 32 359 2",
|
||||
" c None",
|
||||
". c #ABAAAA",
|
||||
"+ c #CCCCCC",
|
||||
"@ c #C5C4C4",
|
||||
"# c #C2C1C1",
|
||||
"$ c #D2D1D1",
|
||||
"% c #C8C7C7",
|
||||
"& c #C8C7C8",
|
||||
"* c #C9C8C8",
|
||||
"= c #CAC8C9",
|
||||
"- c #CAC9C9",
|
||||
"; c #C8C6C7",
|
||||
"> c #C7C6C6",
|
||||
", c #CFCDCE",
|
||||
"' c #D1D0D0",
|
||||
") c #C6C5C6",
|
||||
"! c #CFCECE",
|
||||
"~ c #B9B7B7",
|
||||
"{ c #D4D4D4",
|
||||
"] c #DCDBDC",
|
||||
"^ c #D8D7D7",
|
||||
"/ c #D6D5D5",
|
||||
"( c #D6D5D6",
|
||||
"_ c #D7D6D6",
|
||||
": c #D9D8D8",
|
||||
"< c #DBDADB",
|
||||
"[ c #DAD9DA",
|
||||
"} c #D7D7D7",
|
||||
"| c #D6D6D6",
|
||||
"1 c #DAD9D9",
|
||||
"2 c #E2E1E1",
|
||||
"3 c #B0AFAF",
|
||||
"4 c #D3D2D2",
|
||||
"5 c #CDCCCC",
|
||||
"6 c #CDCDCD",
|
||||
"7 c #CECDCD",
|
||||
"8 c #CECECE",
|
||||
"9 c #CFCFCF",
|
||||
"0 c #D0CFCF",
|
||||
"a c #C0BFBF",
|
||||
"b c #9C9A9B",
|
||||
"c c #6E6B6B",
|
||||
"d c #807E7F",
|
||||
"e c #C8C8C8",
|
||||
"f c #CAC9CA",
|
||||
"g c #CACACA",
|
||||
"h c #CBCACA",
|
||||
"i c #CCCBCB",
|
||||
"j c #CCCBCC",
|
||||
"k c #D0CECF",
|
||||
"l c #C3C2C2",
|
||||
"m c #A09E9F",
|
||||
"n c #B5B4B4",
|
||||
"o c #AFADAE",
|
||||
"p c #787576",
|
||||
"q c #8D8B8B",
|
||||
"r c #D4D3D3",
|
||||
"s c #C7C6C7",
|
||||
"t c #C7C7C7",
|
||||
"u c #C9C8C9",
|
||||
"v c #C9C9C9",
|
||||
"w c #CACAC9",
|
||||
"x c #BFBEBE",
|
||||
"y c #A3A1A2",
|
||||
"z c #A09D9E",
|
||||
"A c #B4B2B2",
|
||||
"B c #B6B4B4",
|
||||
"C c #827F80",
|
||||
"D c #969595",
|
||||
"E c #C4C3C3",
|
||||
"F c #C4C4C4",
|
||||
"G c #C5C5C5",
|
||||
"H c #C6C5C5",
|
||||
"I c #C6C6C6",
|
||||
"J c #C9C7C8",
|
||||
"K c #B9B7B8",
|
||||
"L c #A5A4A4",
|
||||
"M c #A4A3A3",
|
||||
"N c #A7A5A5",
|
||||
"O c #B3B1B2",
|
||||
"P c #BFBDBD",
|
||||
"Q c #8D8A8B",
|
||||
"R c #A09F9F",
|
||||
"S c #DDDCDC",
|
||||
"T c #C0C0C0",
|
||||
"U c #C3C1C2",
|
||||
"V c #C3C2C3",
|
||||
"W c #C3C3C3",
|
||||
"X c #C4C3C4",
|
||||
"Y c #B2B1B1",
|
||||
"Z c #A8A7A7",
|
||||
"` c #ABA9A9",
|
||||
" . c #CFCECF",
|
||||
".. c #C2C0C1",
|
||||
"+. c #989697",
|
||||
"@. c #A8A6A7",
|
||||
"#. c #DEDDDD",
|
||||
"$. c #DEDDDE",
|
||||
"%. c #C1C0C0",
|
||||
"&. c #C2C1C2",
|
||||
"*. c #B1B0B0",
|
||||
"=. c #ADACAC",
|
||||
"-. c #AFAEAE",
|
||||
";. c #BDBCBC",
|
||||
">. c #B3B2B2",
|
||||
",. c #B4B3B4",
|
||||
"'. c #B8B8B8",
|
||||
"). c #D5D4D4",
|
||||
"!. c #C0BFBE",
|
||||
"~. c #C1C0C1",
|
||||
"{. c #C3C1C1",
|
||||
"]. c #C4C4C3",
|
||||
"^. c #B2B0B1",
|
||||
"/. c #B3B2B3",
|
||||
"(. c #B4B3B3",
|
||||
"_. c #A1A0A0",
|
||||
":. c #B9B8B8",
|
||||
"<. c #C4C2C3",
|
||||
"[. c #BDBBBC",
|
||||
"}. c #B5B4B3",
|
||||
"|. c #B6B4B5",
|
||||
"1. c #B7B5B6",
|
||||
"2. c #B7B6B7",
|
||||
"3. c #B8B7B7",
|
||||
"4. c #B8B7B8",
|
||||
"5. c #BCBABB",
|
||||
"6. c #BBBABA",
|
||||
"7. c #BFBEBF",
|
||||
"8. c #C1C1C1",
|
||||
"9. c #C1BFC0",
|
||||
"0. c #BCBBBB",
|
||||
"a. c #BEBCBD",
|
||||
"b. c #BEBDBD",
|
||||
"c. c #9B999A",
|
||||
"d. c #9D9B9B",
|
||||
"e. c #C2C2C2",
|
||||
"f. c #D4D3D4",
|
||||
"g. c #CECDCE",
|
||||
"h. c #C7C5C5",
|
||||
"i. c #A4A2A3",
|
||||
"j. c #A19F9F",
|
||||
"k. c #C6C4C5",
|
||||
"l. c #DCDCDC",
|
||||
"m. c #D0CFD0",
|
||||
"n. c #CECCCD",
|
||||
"o. c #A2A1A1",
|
||||
"p. c #939292",
|
||||
"q. c #E1E0E0",
|
||||
"r. c #E3E3E3",
|
||||
"s. c #B3B3B3",
|
||||
"t. c #CCCACB",
|
||||
"u. c #D2D2D2",
|
||||
"v. c #D5D3D4",
|
||||
"w. c #A7A6A6",
|
||||
"x. c #959494",
|
||||
"y. c #E3E2E2",
|
||||
"z. c #DCDBDB",
|
||||
"A. c #CBC9CA",
|
||||
"B. c #E1E0E1",
|
||||
"C. c #DFDEDE",
|
||||
"D. c #CECCCC",
|
||||
"E. c #CDCCCD",
|
||||
"F. c #D2D0D0",
|
||||
"G. c #D2D0D1",
|
||||
"H. c #B5B4B5",
|
||||
"I. c #B1AFB0",
|
||||
"J. c #EDECEC",
|
||||
"K. c #D1CFCF",
|
||||
"L. c #CDCBCC",
|
||||
"M. c #D5D5D5",
|
||||
"N. c #DCDADA",
|
||||
"O. c #C5C4C5",
|
||||
"P. c #D2D1D2",
|
||||
"Q. c #D5D4D5",
|
||||
"R. c #DADADA",
|
||||
"S. c #DBDADA",
|
||||
"T. c #DDDCDD",
|
||||
"U. c #D7D6D7",
|
||||
"V. c #E8E7E7",
|
||||
"W. c #D8D8D8",
|
||||
"X. c #D8D6D6",
|
||||
"Y. c #D9D8D9",
|
||||
"Z. c #DBDBDB",
|
||||
"`. c #DDDDDD",
|
||||
" + c #474747",
|
||||
".+ c #ECEBEB",
|
||||
"++ c #F3F3F3",
|
||||
"@+ c #E4E3E3",
|
||||
"#+ c #E0DFDF",
|
||||
"$+ c #E5E5E5",
|
||||
"%+ c #EFEFEF",
|
||||
"&+ c #EBEAEB",
|
||||
"*+ c #E6E5E5",
|
||||
"=+ c #E0E0E0",
|
||||
"-+ c #E4E4E4",
|
||||
";+ c #E5E4E4",
|
||||
">+ c #ECECEC",
|
||||
",+ c #666666",
|
||||
"'+ c #585757",
|
||||
")+ c #D9D9DA",
|
||||
"!+ c #E2E2E2",
|
||||
"~+ c #E6E5E6",
|
||||
"{+ c #E1E1E1",
|
||||
"]+ c #E6E6E6",
|
||||
"^+ c #E7E7E7",
|
||||
"/+ c #898989",
|
||||
"(+ c #767575",
|
||||
"_+ c #E0DFE0",
|
||||
":+ c #E9E9E9",
|
||||
"<+ c #BDBDBD",
|
||||
"[+ c #B6B6B6",
|
||||
"}+ c #B0B0B0",
|
||||
"|+ c #ACACAC",
|
||||
"1+ c #ACABAC",
|
||||
"2+ c #A7A7A7",
|
||||
"3+ c #DFDFDF",
|
||||
"4+ c #E5E5E4",
|
||||
"5+ c #E9E8E8",
|
||||
"6+ c #E8E8E8",
|
||||
"7+ c #E3E2E3",
|
||||
"8+ c #D7D5D5",
|
||||
"9+ c #8E8D8D",
|
||||
"0+ c #807F7F",
|
||||
"a+ c #494848",
|
||||
"b+ c #5A5758",
|
||||
"c+ c #605E5F",
|
||||
"d+ c #646262",
|
||||
"e+ c #555354",
|
||||
"f+ c #1F1F1F",
|
||||
"g+ c #282626",
|
||||
"h+ c #323031",
|
||||
"i+ c #3D3C3C",
|
||||
"j+ c #494748",
|
||||
"k+ c #555353",
|
||||
"l+ c #5A5959",
|
||||
"m+ c #3E3D3D",
|
||||
"n+ c #434242",
|
||||
"o+ c #444343",
|
||||
"p+ c #414041",
|
||||
"q+ c #3E3E3E",
|
||||
"r+ c #4A4949",
|
||||
"s+ c #706D6E",
|
||||
"t+ c #6B6969",
|
||||
"u+ c #6A6869",
|
||||
"v+ c #696469",
|
||||
"w+ c #656065",
|
||||
"x+ c #595757",
|
||||
"y+ c #A5A5A5",
|
||||
"z+ c #767676",
|
||||
"A+ c #8A8888",
|
||||
"B+ c #4B4849",
|
||||
"C+ c #5C5A5A",
|
||||
"D+ c #686565",
|
||||
"E+ c #524F50",
|
||||
"F+ c #000000",
|
||||
"G+ c #090607",
|
||||
"H+ c #171415",
|
||||
"I+ c #262324",
|
||||
"J+ c #363334",
|
||||
"K+ c #454343",
|
||||
"L+ c #4A4748",
|
||||
"M+ c #212020",
|
||||
"N+ c #2A292A",
|
||||
"O+ c #2C2B2B",
|
||||
"P+ c #272626",
|
||||
"Q+ c #242424",
|
||||
"R+ c #242323",
|
||||
"S+ c #3C3B3B",
|
||||
"T+ c #726F70",
|
||||
"U+ c #6C696A",
|
||||
"V+ c #6B676A",
|
||||
"W+ c #7A916C",
|
||||
"X+ c #7B926B",
|
||||
"Y+ c #605F60",
|
||||
"Z+ c #9C9B9C",
|
||||
"`+ c #606060",
|
||||
" @ c #8F8D8D",
|
||||
".@ c #494747",
|
||||
"+@ c #595657",
|
||||
"@@ c #615E5F",
|
||||
"#@ c #656162",
|
||||
"$@ c #525050",
|
||||
"%@ c #020101",
|
||||
"&@ c #0C0A0A",
|
||||
"*@ c #1A1818",
|
||||
"=@ c #282525",
|
||||
"-@ c #454243",
|
||||
";@ c #494647",
|
||||
">@ c #2A2929",
|
||||
",@ c #393838",
|
||||
"'@ c #363536",
|
||||
")@ c #323131",
|
||||
"!@ c #2B292A",
|
||||
"~@ c #282727",
|
||||
"{@ c #444243",
|
||||
"]@ c #696666",
|
||||
"^@ c #666268",
|
||||
"/@ c #709D48",
|
||||
"(@ c #7BAD4A",
|
||||
"_@ c #68686A",
|
||||
":@ c #8F8E8F",
|
||||
"<@ c #4E4D4E",
|
||||
"[@ c #8E8C8D",
|
||||
"}@ c #484546",
|
||||
"|@ c #555253",
|
||||
"1@ c #5D595A",
|
||||
"2@ c #5F5B5C",
|
||||
"3@ c #514F50",
|
||||
"4@ c #0F0D0D",
|
||||
"5@ c #211E1F",
|
||||
"6@ c #312E2F",
|
||||
"7@ c #413D3E",
|
||||
"8@ c #222121",
|
||||
"9@ c #2E2D2D",
|
||||
"0@ c #312F30",
|
||||
"a@ c #262425",
|
||||
"b@ c #464344",
|
||||
"c@ c #696667",
|
||||
"d@ c #666263",
|
||||
"e@ c #5F5E5F",
|
||||
"f@ c #5A5B5B",
|
||||
"g@ c #797577",
|
||||
"h@ c #7A7A7A",
|
||||
"i@ c #4C4A4A",
|
||||
"j@ c #2A2728",
|
||||
"k@ c #2C292A",
|
||||
"l@ c #302D2E",
|
||||
"m@ c #312F2F",
|
||||
"n@ c #2E2C2C",
|
||||
"o@ c #100F0F",
|
||||
"p@ c #110F10",
|
||||
"q@ c #141212",
|
||||
"r@ c #1B1919",
|
||||
"s@ c #242222",
|
||||
"t@ c #2D2B2B",
|
||||
"u@ c #322F30",
|
||||
"v@ c #2F2D2D",
|
||||
"w@ c #2B2829",
|
||||
"x@ c #292728",
|
||||
"y@ c #363233",
|
||||
"z@ c #332F30",
|
||||
"A@ c #312D2F",
|
||||
"B@ c #2A2627",
|
||||
"C@ c #424040",
|
||||
"D@ c #454444",
|
||||
"E@ c #737373",
|
||||
"F@ c #828282",
|
||||
"G@ c #939293",
|
||||
"H@ c #9C9C9C",
|
||||
"I@ c #A3A3A3",
|
||||
"J@ c #A9A9A9",
|
||||
"K@ c #ADADAD",
|
||||
"L@ c #B2B2B2",
|
||||
"M@ c #B5B5B5",
|
||||
"N@ c #A4A4A4",
|
||||
"O@ c #959595",
|
||||
"P@ c #8C8C8C",
|
||||
"Q@ c #707070",
|
||||
"R@ c #FFFFFF",
|
||||
" ",
|
||||
" . + @ # $ % & * = - ; > * - - - * , ' ) ! ~ ",
|
||||
" = { ' ] ^ { / / ( _ : < [ ^ ^ } ^ | 1 2 } 3 ",
|
||||
" - 4 ' ' 5 6 6 6 7 7 8 9 ! ! 9 9 0 0 $ 5 a b c ",
|
||||
" d 4 [ * e - - f g h h h i i j + 5 5 k l m n o p ",
|
||||
" q _ r @ > > s s t % % * * u v - w 5 x y z A B C ",
|
||||
" D 1 7 l E F @ @ G H H I > > > J * K L M N O P Q ",
|
||||
" R S % T U U l V W E X F @ @ > E Y Z ` > .* ..+. ",
|
||||
" @.#.$.W %.# # # &.l l V E G T *.=.-.*.5 ;.>.,.Z ",
|
||||
" n '.).[ !.T ~.# ..{.U l ].x Y ^.>.A /.(.x ;.O _. ",
|
||||
" :.^.<.h a %.%.# # # &.U [.}.|.1.2.3.4.K K a 5.N ",
|
||||
" 6.i H 7.%.8.# &.# l * % E 9.[.5.0.[.;.a.b.;., %.c. ",
|
||||
" d.> 0 a # &.e.V V % ^ f.j g - % %.....&.l V l g.h.i. ",
|
||||
" j./ i # E E @ k.H l.g.%.# l E H <.b.; > % % % m.n.o. ",
|
||||
" p.q.7 @ ) > % % - r.) > % * * g f s.5 t.i i i u.v.w. ",
|
||||
" x.y.z.> u - g A.- B.C.D.E.! 0 7 (.6.$ ' ' F.G.).^ H. ",
|
||||
" I.7 J.K.L.7 7 ! ! m.S 1 m.- %.3.8./ ).M./ | _ : N.; ",
|
||||
" O., F.f.P.4 4 4 f.f.r / Q.4 4 ^ R.: : 1 [ S.< S T.U. ",
|
||||
" 4 V.| ).| _ W._ X.^ : Y.1 S.Z.z.] S S `.#.C.C.2 V.q. + ",
|
||||
" S..+++@+`.#+$+%+&+*+2 #+=+q.y.-+-+-+;+$+$+*+>+++Z.*+,+ ",
|
||||
" '+S.# $ >+r.m.e.# 6 )+!+~+*+@+B.=+{+-+]+]+^+]+^+j 5 y./+ ",
|
||||
" (+b.3 _+! m.#+:+q.r > <+[+}+|+3 '.b.8.> e 5 7 ! ^+j 1+2+ ",
|
||||
" x.] ! r / ^ W.R.S 3+2 y.@+4+5+6+^+~+*+;+7+#+C.#.S.8+: V ",
|
||||
" 9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+n+p+q+r+s+t+u+v+w+x+y+ ",
|
||||
" z+A+B+C+d+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+ ",
|
||||
" `+ @.@+@@@#@$@%@&@*@=@J+-@;@>@,@'@)@!@~@{@c ]@^@/@(@_@:@ ",
|
||||
" <@[@}@|@1@2@3@F+%@4@5@6@7@-@8@9@9@0@~@a@b@c@#@d@e@f@g@h@ ",
|
||||
" i@j@k@l@m@n@o@p@q@r@s@t@u@!@l@v@v@w@x@l@y@z@6@A@B@C@D@ ",
|
||||
" E@F@G@H@I@J@K@}+L@M@M@M@s.}+|+N@H@O@P@F@Q@ ",
|
||||
" R@R@R@R@R@R@R@R@R@ ",
|
||||
" ",
|
||||
" "};
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,2 @@
|
||||
|
||||
EXTRA_DIST = distribution.txt.in gsmartcontrol.nsi.in nsi_install.ico nsi_uninstall.ico
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
GSmartControl - Hard disk drive and SSD health inspection tool
|
||||
Version @VERSION@
|
||||
|
||||
The latest version of this distribution, as well as the source code of
|
||||
GSmartControl, can be found at
|
||||
http://gsmartcontrol.sourceforge.net
|
||||
and
|
||||
https://sourceforge.net/projects/gsmartcontrol/files/
|
||||
|
||||
|
||||
This distribution includes:
|
||||
|
||||
* GSmartControl binary (gsmartcontrol.exe) and associated resources.
|
||||
The binary was compiled against Gtkmm (http://www.gtkmm.org/), GTK+
|
||||
(http://gtk.org/) and related libraries, and PCRE (http://www.pcre.org/).
|
||||
|
||||
* Smartctl binaries (from smartmontools 6.5, http://smartmontools.sf.net/)
|
||||
- smartctl-nc.exe (compiled without console output), smartctl.exe (compiled
|
||||
with console output), update-smart-drivedb.exe (drive database updater).
|
||||
|
||||
|
||||
The combined distribution is multi-licensed under GNU GPL versions 2 and 3.
|
||||
See LICENSE_gpl2.txt and LICENSE_gpl3.txt for details.
|
||||
@@ -0,0 +1,319 @@
|
||||
|
||||
; NSIS2 Script
|
||||
; by Alexander Shaduri <ashaduri 'at' gmail.com>.
|
||||
; Compatible with NSIS Unicode 2.45.
|
||||
; Public Domain
|
||||
|
||||
!define PRODUCT_VERSION "@VERSION@"
|
||||
!define PRODUCT_NAME "GSmartControl"
|
||||
!define PRODUCT_NAME_SMALL "gsmartcontrol"
|
||||
!define PRODUCT_PUBLISHER "Alexander Shaduri"
|
||||
!define PRODUCT_WEB_SITE "http://gsmartcontrol.sourceforge.net"
|
||||
|
||||
;!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe"
|
||||
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
||||
|
||||
|
||||
!include "FileFunc.nsh" ; GetOptions
|
||||
|
||||
|
||||
|
||||
; --------------- General Settings
|
||||
|
||||
|
||||
; This is needed for proper start menu item manipulation (for all users) in vista
|
||||
RequestExecutionLevel admin
|
||||
|
||||
; This compressor gives us the best results
|
||||
SetCompressor /SOLID lzma
|
||||
|
||||
; Do a CRC check before installing
|
||||
CRCCheck On
|
||||
|
||||
; This is used in titles
|
||||
Name "${PRODUCT_NAME}" ; ${PRODUCT_VERSION}
|
||||
|
||||
; Output File Name
|
||||
OutFile "${PRODUCT_NAME_SMALL}-${PRODUCT_VERSION}-@WINDOWS_SUFFIX@.exe"
|
||||
|
||||
|
||||
; The Default Installation Directory:
|
||||
; Try to install to the same directory as runtime.
|
||||
InstallDir "$PROGRAMFILES64\${PRODUCT_NAME}"
|
||||
; If already installed, try here
|
||||
InstallDirRegKey HKLM "SOFTWARE\${PRODUCT_NAME}" "InstallationDirectory"
|
||||
|
||||
|
||||
ShowInstDetails show
|
||||
ShowUnInstDetails show
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; --------------------- MUI INTERFACE
|
||||
|
||||
; MUI 2.0 compatible install
|
||||
!include "MUI2.nsh"
|
||||
!include "InstallOptions.nsh" ; section description macros
|
||||
|
||||
; Backgound Colors. uncomment to enable fullscreen.
|
||||
; BGGradient 0000FF 000000 FFFFFF
|
||||
|
||||
; MUI Settings
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "nsi_install.ico"
|
||||
!define MUI_UNICON "nsi_uninstall.ico"
|
||||
|
||||
|
||||
; Things that need to be extracted on first (keep these lines before any File command!).
|
||||
; Only useful for BZIP2 compression.
|
||||
;!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
;!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
||||
|
||||
|
||||
; Language Selection Dialog Settings
|
||||
;!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
|
||||
;!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
|
||||
;!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
|
||||
|
||||
!define LICENSE_FILE "doc\distribution.txt"
|
||||
|
||||
; Pages to show during installation
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "${LICENSE_FILE}"
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
;!define MUI_FINISHPAGE_RUN "$INSTDIR\gsmartcontrol.exe"
|
||||
;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Example.file"
|
||||
;!define MUI_FINISHPAGE_RUN_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
|
||||
|
||||
; Uninstaller page
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
|
||||
|
||||
; Language files
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
|
||||
; --------------- END MUI
|
||||
|
||||
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "GSmartControl"
|
||||
|
||||
|
||||
var install_option_removeold ; uninstall the old version first (if present): yes (default), no.
|
||||
|
||||
|
||||
|
||||
; ----------------- INSTALLATION TYPES
|
||||
|
||||
; InstType "Recommended"
|
||||
; InstType "Full"
|
||||
; InstType "Minimal"
|
||||
|
||||
|
||||
|
||||
|
||||
Section "!GSmartControl" SecMain
|
||||
SectionIn 1 RO
|
||||
SetShellVarContext all ; use all user variables as opposed to current user
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
SetOverwrite Off ; don't overwrite the config file
|
||||
; File "gsmartcontrol.conf"
|
||||
|
||||
SetOverwrite On
|
||||
File *.exe
|
||||
File *.dll
|
||||
File gsmartcontrol.exe.manifest
|
||||
File gsmartcontrol.ico
|
||||
File icon_*.png
|
||||
File drivedb.h
|
||||
|
||||
; Include the "doc" directory completely.
|
||||
File /r doc
|
||||
|
||||
; GTK and stuff
|
||||
File /r etc
|
||||
File /r share
|
||||
|
||||
; Add Shortcuts (this inherits the exe's run permissions)
|
||||
CreateShortCut "$SMPROGRAMS\GSmartControl.lnk" "$INSTDIR\gsmartcontrol.exe" "" \
|
||||
"$INSTDIR\gsmartcontrol.ico" "" SW_SHOWNORMAL "" "GSmartControl - Hard disk drive and SSD health inspection tool"
|
||||
|
||||
SectionEnd
|
||||
|
||||
|
||||
|
||||
; Executed on installation start
|
||||
Function .onInit
|
||||
SetShellVarContext all ; use all user variables as opposed to current user
|
||||
|
||||
${GetOptions} "$CMDLINE" "/removeold=" $install_option_removeold
|
||||
|
||||
Call PreventMultipleInstances
|
||||
|
||||
Call DetectPrevInstallation
|
||||
FunctionEnd
|
||||
|
||||
|
||||
|
||||
; ------------------ POST INSTALL
|
||||
|
||||
|
||||
Section -post
|
||||
SetShellVarContext all ; use all user variables as opposed to current user
|
||||
|
||||
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "InstallationDirectory" "$INSTDIR"
|
||||
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "Vendor" "${PRODUCT_PUBLISHER}"
|
||||
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\gsmartcontrol_uninst.exe"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\gsmartcontrol.ico"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegDWORD HKLM "${PRODUCT_UNINST_KEY}" "NoModify" 1
|
||||
WriteRegDWORD HKLM "${PRODUCT_UNINST_KEY}" "NoRepair" 1
|
||||
|
||||
; We don't need this, MUI takes care for us
|
||||
; WriteRegStr HKCU "Software\${PRODUCT_NAME}" "Installer Language" $sUAGE
|
||||
|
||||
; write out uninstaller
|
||||
WriteUninstaller "$INSTDIR\gsmartcontrol_uninst.exe"
|
||||
|
||||
; uninstall shortcut
|
||||
;CreateDirectory "$SMPROGRAMS\GSmartControl"
|
||||
;CreateShortCut "$SMPROGRAMS\GSmartControl\Uninstall GSmartControl.lnk" "$INSTDIR\gsmartcontrol_uninst.exe" "" ""
|
||||
|
||||
SectionEnd ; post
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; ---------------- UNINSTALL
|
||||
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
HideWindow
|
||||
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
|
||||
FunctionEnd
|
||||
|
||||
|
||||
|
||||
|
||||
Section Uninstall
|
||||
SetShellVarContext all ; use all user variables as opposed to current user
|
||||
SetAutoClose false
|
||||
|
||||
; add delete commands to delete whatever files/registry keys/etc you installed here.
|
||||
Delete "$INSTDIR\gsmartcontrol_uninst.exe"
|
||||
|
||||
DeleteRegKey HKLM "SOFTWARE\${PRODUCT_NAME}"
|
||||
DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}"
|
||||
|
||||
Delete "$INSTDIR\*.exe"
|
||||
Delete "$INSTDIR\*.dll"
|
||||
Delete "$INSTDIR\gsmartcontrol.exe.manifest"
|
||||
Delete "$INSTDIR\gsmartcontrol.ico"
|
||||
Delete "$INSTDIR\icon_*.png"
|
||||
|
||||
; update-smart-drivedb may leave these
|
||||
Delete "$INSTDIR\drivedb.h"
|
||||
Delete "$INSTDIR\drivedb.h.*"
|
||||
|
||||
RMDir /r "$INSTDIR\doc"
|
||||
|
||||
; GTK and stuff
|
||||
RMDir /r "$INSTDIR\etc"
|
||||
RMDir /r "$INSTDIR\share"
|
||||
|
||||
; clean up generated stuff
|
||||
Delete "$INSTDIR\*stdout.txt"
|
||||
Delete "$INSTDIR\*stderr.txt"
|
||||
|
||||
RMDir "$INSTDIR" ; only if empty
|
||||
|
||||
Delete "$SMPROGRAMS\GSmartControl.lnk"
|
||||
;Delete "$SMPROGRAMS\GSmartControl\Uninstall GSmartControl.lnk"
|
||||
|
||||
SectionEnd ; end of uninstall section
|
||||
|
||||
|
||||
|
||||
; --------------- Helpers
|
||||
|
||||
; Detect previous installation
|
||||
Function DetectPrevInstallation
|
||||
; if /removeold=no option is given, don't check anything.
|
||||
StrCmp $install_option_removeold "no" old_detect_done
|
||||
|
||||
SetShellVarContext all ; use all user variables as opposed to current user
|
||||
push $R0
|
||||
|
||||
; detect previous installation
|
||||
ReadRegStr $R0 HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
|
||||
StrCmp $R0 "" old_detect_done
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
||||
"${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
|
||||
previous version or `Cancel` to continue anyway." \
|
||||
/SD IDOK IDOK old_uninst
|
||||
; Abort
|
||||
goto old_detect_done
|
||||
|
||||
; Run the old uninstaller
|
||||
old_uninst:
|
||||
ClearErrors
|
||||
IfSilent old_silent_uninst old_nosilent_uninst
|
||||
|
||||
old_nosilent_uninst:
|
||||
ExecWait '$R0'
|
||||
goto old_uninst_continue
|
||||
|
||||
old_silent_uninst:
|
||||
ExecWait '$R0 /S _?=$INSTDIR'
|
||||
|
||||
old_uninst_continue:
|
||||
|
||||
IfErrors old_no_remove_uninstaller
|
||||
|
||||
; You can either use Delete /REBOOTOK in the uninstaller or add some code
|
||||
; here to remove to remove the uninstaller. Use a registry key to check
|
||||
; whether the user has chosen to uninstall. If you are using an uninstaller
|
||||
; components page, make sure all sections are uninstalled.
|
||||
old_no_remove_uninstaller:
|
||||
|
||||
old_detect_done: ; old installation not found, all ok
|
||||
|
||||
pop $R0
|
||||
FunctionEnd
|
||||
|
||||
|
||||
|
||||
; Prevent running multiple instances of the installer
|
||||
Function PreventMultipleInstances
|
||||
Push $R0
|
||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t ${PRODUCT_NAME}) ?e'
|
||||
Pop $R0
|
||||
StrCmp $R0 0 +3
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
|
||||
Abort
|
||||
Pop $R0
|
||||
FunctionEnd
|
||||
|
||||
|
||||
|
||||
; eof
|
||||
|
After Width: | Height: | Size: 766 B |
|
After Width: | Height: | Size: 766 B |