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)
 | 
					set(libcellar_subdirs bottles config launch paths)
 | 
				
			||||||
if(ENABLE_STEAM)
 | 
					if(ENABLE_STEAM)
 | 
				
			||||||
        list(APPEND steam)
 | 
					        list(APPEND libcellar_subdirs steam)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
build_library(TARGET libcellar
 | 
					build_library(TARGET libcellar
 | 
				
			||||||
        SUBDIRS ${libcellar_subdirs}
 | 
					        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
 | 
					config
 | 
				
			||||||
bottles
 | 
					bottles
 | 
				
			||||||
launch
 | 
					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);
 | 
					    std::ifstream fd_steam_library_config(str_steam_library_config);
 | 
				
			||||||
    auto hnd_steam_library_config = vdf::read(fd_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