Allow specifying the default source
This commit is contained in:
		
					parent
					
						
							
								2670e35fdd
							
						
					
				
			
			
				commit
				
					
						9b13eaf23d
					
				
			
		
					 9 changed files with 909 additions and 607 deletions
				
			
		
							
								
								
									
										1419
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										1419
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										54
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										54
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -9,47 +9,21 @@ | |||
| 
 | ||||
|   outputs = | ||||
|     inputs: | ||||
|     inputs.flake-utils.lib.eachSystem (with inputs.flake-utils.lib.system; [ x86_64-linux ]) ( | ||||
|     { | ||||
|       overlays.default = (import ./nix/overlay.nix { inherit inputs; }); | ||||
|     } | ||||
|     // inputs.flake-utils.lib.eachSystem (with inputs.flake-utils.lib.system; [ x86_64-linux ]) ( | ||||
|       system: | ||||
|       let | ||||
|         pkgs = inputs.nixpkgs.legacyPackages.${system}; | ||||
|         spkgs = inputs.self.packages.${system}; | ||||
|         inherit (pkgs) lib; | ||||
|         pkgs = import inputs.nixpkgs { | ||||
|           inherit system; | ||||
|           overlays = [ inputs.self.overlays.default ]; | ||||
|         }; | ||||
|       in | ||||
|       { | ||||
|         packages = { | ||||
|           # {{{ Private config | ||||
|           shimmeringdarkness = inputs.shimmeringdarkness.outPath; | ||||
|           glass-bundler = pkgs.callPackage ./nix/glass-bundler.nix { }; | ||||
|           debundled-darkness = pkgs.callPackage ./nix/debundled-darkness.nix { | ||||
|             inherit (spkgs) shimmeringdarkness glass-bundler; | ||||
|           }; | ||||
| 
 | ||||
|           private-config = pkgs.callPackage ./nix/private-config.nix { | ||||
|             inherit (spkgs) shimmeringdarkness debundled-darkness; | ||||
|           }; | ||||
|           # }}} | ||||
|           # {{{ Fonts | ||||
|           kazesawa = pkgs.callPackage ./nix/kazesawa.nix { }; | ||||
|           exo = pkgs.callPackage ./nix/exo.nix { }; | ||||
|           geosans-light = pkgs.callPackage ./nix/geosans-light.nix { }; | ||||
| 
 | ||||
|           shimmering-fonts = pkgs.callPackage ./nix/fonts.nix { | ||||
|             # Pass custom-packaged fonts | ||||
|             inherit (spkgs) exo kazesawa geosans-light; | ||||
|           }; | ||||
|           # }}} | ||||
|           # {{{ Shimmeringmoon | ||||
|           cc-data = pkgs.callPackage ./nix/cc-data.nix { }; | ||||
|           default = spkgs.shimmeringmoon; | ||||
|           shimmeringmoon = pkgs.callPackage ./nix/shimmeringmoon.nix { | ||||
|             inherit (spkgs) | ||||
|               shimmering-fonts | ||||
|               cc-data | ||||
|               private-config | ||||
|               ; | ||||
|           }; | ||||
|           # }}} | ||||
|           inherit (pkgs) shimmeringmoon; | ||||
|           default = pkgs.shimmeringmoon; | ||||
|         }; | ||||
| 
 | ||||
|         #  {{{ Devshell | ||||
|  | @ -74,10 +48,10 @@ | |||
|             openssl | ||||
|           ]; | ||||
| 
 | ||||
|           LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs; | ||||
|           SHIMMERING_FONT_DIR = spkgs.shimmering-fonts; | ||||
|           SHIMMERING_CC_DIR = spkgs.cc-data; | ||||
|           SHIMMERING_PRIVATE_CONFIG_DIR = spkgs.private-config; | ||||
|           LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; | ||||
|           SHIMMERING_FONT_DIR = pkgs.shimmering-fonts; | ||||
|           SHIMMERING_CC_DIR = pkgs.cc-data; | ||||
|           SHIMMERING_PRIVATE_CONFIG_DIR = pkgs.private-config; | ||||
|         }; | ||||
|         #  }}} | ||||
|       } | ||||
|  |  | |||
							
								
								
									
										15
									
								
								nix/overlay.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								nix/overlay.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | |||
| { inputs }: | ||||
| final: prev: { | ||||
|   shimmeringdarkness = inputs.shimmeringdarkness.outPath; | ||||
|   glass-bundler = final.callPackage ./glass-bundler.nix { }; | ||||
|   debundled-darkness = final.callPackage ./debundled-darkness.nix { }; | ||||
|   private-config = final.callPackage ./private-config.nix { }; | ||||
| 
 | ||||
|   kazesawa = final.callPackage ./kazesawa.nix { }; | ||||
|   exo = final.callPackage ./exo.nix { }; | ||||
|   geosans-light = final.callPackage ./geosans-light.nix { }; | ||||
|   shimmering-fonts = final.callPackage ./fonts.nix { }; | ||||
| 
 | ||||
|   arcaea-ptt-data = final.callPackage ./cc-data.nix { }; | ||||
|   shimmeringmoon = final.callPackage ./shimmeringmoon.nix { }; | ||||
| } | ||||
|  | @ -10,7 +10,7 @@ | |||
|   rustPlatform, | ||||
| 
 | ||||
|   shimmering-fonts, | ||||
|   cc-data, | ||||
|   arcaea-ptt-data, | ||||
|   private-config, | ||||
| }: | ||||
| rustPlatform.buildRustPackage rec { | ||||
|  | @ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec { | |||
|   }; | ||||
| 
 | ||||
|   SHIMMERING_FONT_DIR = shimmering-fonts; | ||||
|   SHIMMERING_CC_DIR = cc-data; | ||||
|   SHIMMERING_CC_DIR = arcaea-ptt-data; | ||||
|   SHIMMERING_PRIVATE_CONFIG_DIR = private-config; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|  | @ -58,7 +58,7 @@ rustPlatform.buildRustPackage rec { | |||
|   postFixup = '' | ||||
|     for file in $out/bin/*; do | ||||
|       wrapProgram $file \ | ||||
|         --set SHIMMERING_CC_DIR "${cc-data}" \ | ||||
|         --set SHIMMERING_CC_DIR "${arcaea-ptt-data}" \ | ||||
|         --set SHIMMERING_PRIVATE_CONFIG_DIR ${private-config} | ||||
|     done | ||||
|   ''; | ||||
|  |  | |||
|  | @ -289,6 +289,7 @@ async fn best( | |||
| 	#[description = "Name of chart (difficulty at the end)"] | ||||
| 	name: String, | ||||
| ) -> Result<(), Error> { | ||||
| 	ctx.defer().await?; | ||||
| 	let res = best_impl(&mut ctx, &name, source.unwrap_or(DataSource::Local)).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 
 | ||||
|  | @ -441,6 +442,7 @@ async fn plot( | |||
| 	#[description = "Name of chart (difficulty at the end)"] | ||||
| 	name: String, | ||||
| ) -> Result<(), Error> { | ||||
| 	ctx.defer().await?; | ||||
| 	let res = plot_impl(&mut ctx, scoring_system, name).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,13 +8,22 @@ pub mod stats; | |||
| pub mod user; | ||||
| pub mod utils; | ||||
| 
 | ||||
| #[derive(Clone, Copy, Default, poise::ChoiceParameter)] | ||||
| #[derive(Clone, Copy, poise::ChoiceParameter)] | ||||
| pub enum DataSource { | ||||
| 	#[default] | ||||
| 	Local, | ||||
| 	Server, | ||||
| } | ||||
| 
 | ||||
| impl Default for DataSource { | ||||
| 	fn default() -> Self { | ||||
| 		if std::env::var("SHIMMERING_DEFAULT_SOURCE").unwrap_or_default() == "server" { | ||||
| 			Self::Server | ||||
| 		} else { | ||||
| 			Self::Local | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // {{{ Help
 | ||||
| /// Show this help menu
 | ||||
| #[poise::command(prefix_command, slash_command, subcommands("scoring", "scoringz"))] | ||||
|  |  | |||
|  | @ -221,6 +221,7 @@ pub async fn magic( | |||
| 	mut ctx: PoiseContext<'_>, | ||||
| 	#[description = "Images containing scores"] files: Vec<serenity::Attachment>, | ||||
| ) -> Result<(), Error> { | ||||
| 	ctx.defer().await?; | ||||
| 	let res = magic_impl(&mut ctx, &files).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 
 | ||||
|  |  | |||
|  | @ -441,12 +441,13 @@ pub async fn b30_impl<C: MessageContext>( | |||
| // }}}
 | ||||
| // {{{ Discord wrapper
 | ||||
| /// Show the 30 best scores
 | ||||
| #[poise::command(prefix_command, slash_command, user_cooldown = 30)] | ||||
| #[poise::command(prefix_command, slash_command, user_cooldown = 10)] | ||||
| pub async fn b30( | ||||
| 	mut ctx: PoiseContext<'_>, | ||||
| 	source: Option<DataSource>, | ||||
| 	scoring_system: Option<ScoringSystem>, | ||||
| ) -> Result<(), Error> { | ||||
| 	ctx.defer().await?; | ||||
| 	let res = b30_impl(&mut ctx, source, scoring_system).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 	Ok(()) | ||||
|  | @ -486,6 +487,7 @@ pub async fn bany( | |||
| 	width: u32, | ||||
| 	height: u32, | ||||
| ) -> Result<(), Error> { | ||||
| 	ctx.defer().await?; | ||||
| 	let res = bany_impl(&mut ctx, source, scoring_system, width, height).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 	Ok(()) | ||||
|  |  | |||
|  | @ -61,6 +61,7 @@ async fn register( | |||
| 	mut ctx: PoiseContext<'_>, | ||||
| 	user: poise::serenity_prelude::User, | ||||
| ) -> Result<(), Error> { | ||||
|     ctx.defer().await?; | ||||
| 	let res = register_impl(&mut ctx, user).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 	Ok(()) | ||||
|  | @ -103,6 +104,7 @@ pub async fn pookify( | |||
| 	mut ctx: PoiseContext<'_>, | ||||
| 	user: poise::serenity_prelude::User, | ||||
| ) -> Result<(), Error> { | ||||
|     ctx.defer().await?; | ||||
| 	let res = pookify_impl(&mut ctx, user).await; | ||||
| 	ctx.handle_error(res).await?; | ||||
| 	Ok(()) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue