File SLSK.spec of Package SLSK

#
# spec file for package SLSK
#

Name:           SLSK
Version:        1.3.2.6
Release:        0
Url:            https://github.com/supremesonicbrazil/SLSK
Summary:        Steam Linux Swiss Knife (SLSK)
License:        GPL v3.0
Group:          Amusements/Games
Source:         %{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

BuildRequires:  cmake
BuildRequires:  fdupes
BuildRequires:  gcc-c++

BuildRequires:  sqlite3
BuildRequires:  libQt5Core-devel, libqt5-qtbase-common-devel, libQt5Gui-devel, libQt5Widgets-devel

BuildRequires:  update-desktop-files
# Needed to workaround "directories not owned by a package" issue
BuildRequires:  hicolor-icon-theme
BuildRequires:  polkit

Conflicts:      SLSK-dev

%description
Steam Linux Swiss Knife is an open-source program that aims to automate the backup and restore of Steam games, their saves and configs, centralizing paths in a local and extremely lightweight database.

%prep
%setup -q -n %{name}-%{version}

%build
# Compiling from source code in a temporary folder
echo "----------[Compiling SLSK...]----------"
mkdir bin
qmake-qt5 -o ./bin/Makefile ./src/SteamLinuxSwissKnife.pro
cd bin
make
# Creating database
echo "----------[Creating database...]----------"
echo 'CREATE TABLE "RegisteredGames" (
`AppID`TEXT,
`SteamName`TEXT,
`GameFolder`TEXT,
`SavePath1`TEXT,
`SaveFolder1`TEXT,
`ConfigPath1`TEXT,
`ConfigFolder1`TEXT,
`SavePath2`TEXT,
`SaveFolder2`TEXT,
`ConfigPath2`TEXT,
`ConfigFolder2`TEXT,
`SavePath3`TEXT,
`SaveFolder3`TEXT,
`ConfigPath3`TEXT,
`ConfigFolder3`TEXT,
PRIMARY KEY(AppID)
);' | sqlite3 ./SteamLinuxGames.db
echo "DB Created"
cd ..
echo ".import DB.csv RegisteredGames" | sqlite3 -separator '|' ./bin/SteamLinuxGames.db

# Creating desktop entry and setting it as executable
echo "----------[Creating desktop entry...]----------"
echo '[Desktop Entry]
Version=1.0
Name=Steam Linux Swiss Knife
Comment=Backup automation for Steam games, saves and configs
Exec=/usr/bin/slsk
Icon=/usr/share/slsk/img/SLSK_icon.png
Terminal=false
Type=Application
Categories=Utility;Application;' > ./%{name}.desktop
chmod +x ./%{name}.desktop

# Finishing
echo "Done! Steam Linux Swiss Knife was successfully built in 'bin'."
echo "Now, please run INSTALL.sh as sudo."
echo "--------------------------------------------------------------------------------"

%install
echo "----------[Installing SLSK to /opt/SLSK...]----------"
mkdir -p %{buildroot}/usr/share/slsk
mkdir -p %{buildroot}/usr/bin
mv ./bin/SteamLinuxSwissKnife %{buildroot}/usr/bin/slsk
mv ./bin/SteamLinuxGames.db %{buildroot}/usr/share/slsk/SteamLinuxGames.db
cp -r ./img %{buildroot}/usr/share/slsk/img
rm -r ./bin

#desktop icon
%suse_update_desktop_file -r -i %{name} Game Amusement
##install -d %{buildroot}%{_datadir}/applications/
##install ./%{name}.desktop %{buildroot}%{_datadir}/applications/
			
# Finishing
echo "Done! Steam Linux Swiss Knife was successfully installed in '/opt/SLSK'."
echo "If you want to uninstall it anytime, just do a 'sudo rm -r /opt/SLSK'."
echo "Enjoy!"
echo "--------------------------------------------------------------------------------"

%post
%icon_theme_cache_post
%desktop_database_post

%postun
%icon_theme_cache_postun
%desktop_database_postun

%files
%defattr(-,root,root)
/usr/bin/slsk
%dir /usr/share/slsk
/usr/share/slsk/SteamLinuxGames.db
%dir /usr/share/slsk/img
/usr/share/slsk/img/*
%{_datadir}/applications/%{name}.desktop

%changelog
openSUSE Build Service is sponsored by