cellar is now capable of finding your steam libraries
This commit is contained in:
		@@ -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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user