cellar is now capable of finding your steam libraries
This commit is contained in:
parent
ce8c26e58c
commit
0f679dc345
@ -53,7 +53,7 @@ set(src "${CMAKE_SOURCE_DIR}/src")
|
||||
|
||||
set(libcellar_subdirs bottles config launch paths)
|
||||
if(ENABLE_STEAM)
|
||||
list(APPEND steam)
|
||||
list(APPEND libcellar_subdirs steam)
|
||||
endif()
|
||||
build_library(TARGET libcellar
|
||||
SUBDIRS ${libcellar_subdirs}
|
||||
|
@ -1,10 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace cellar {
|
||||
namespace steam {
|
||||
extern std::vector<std::string> find_steam_libraries();
|
||||
}
|
||||
}
|
26
include/internal/steam.hpp.cog
Normal file
26
include/internal/steam.hpp.cog
Normal file
@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "commands.hpp"
|
||||
|
||||
namespace cellar {
|
||||
namespace steam {
|
||||
extern std::vector<std::string> find_steam_libraries();
|
||||
extern void test_command(int argc, std::vector<std::string> argv);
|
||||
/*[[[cog
|
||||
import cog
|
||||
|
||||
with open("src/steam/commands.txt") as commandsfile:
|
||||
for line in commandsfile:
|
||||
item = line.strip().split(" ")
|
||||
cog.outl("extern void {0} (int, vector<string>);".format(item[1]))
|
||||
]]]*/
|
||||
//[[[end]]]
|
||||
}
|
||||
namespace commands {
|
||||
extern std::map<std::string,cellar::commands::CommandFunction> steam_commands();
|
||||
}
|
||||
}
|
@ -2,3 +2,4 @@ core
|
||||
config
|
||||
bottles
|
||||
launch
|
||||
steam
|
1
src/steam/commands.txt
Normal file
1
src/steam/commands.txt
Normal file
@ -0,0 +1 @@
|
||||
steamtest test_command Test Steam related thing.
|
@ -20,4 +20,14 @@ std::vector<std::string> cellar::steam::find_steam_libraries() {
|
||||
|
||||
std::ifstream fd_steam_library_config(str_steam_library_config);
|
||||
auto hnd_steam_library_config = vdf::read(fd_steam_library_config);
|
||||
|
||||
std::vector<std::string> result;
|
||||
|
||||
for (auto hnd_library_def : hnd_steam_library_config.childs) {
|
||||
std::string str_index = hnd_library_def.first;
|
||||
auto hnd_library = hnd_library_def.second;
|
||||
result.push_back(hnd_library->attribs["path"]);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
11
src/steam/test_command.cpp
Normal file
11
src/steam/test_command.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "output.hpp"
|
||||
#include "steam.hpp"
|
||||
#include "internal/steam.hpp"
|
||||
|
||||
void cellar::steam::test_command(int argc, std::vector<std::string> argv) {
|
||||
for (std::string str_path : cellar::steam::find_steam_libraries()) {
|
||||
output::statement(str_path);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user